
C#で作成した、CSVをFTPでウェブサーバにアップロードするプログラムがあるのですが、
運用と共にCSVファイルのサイズと数が増えパフォーマンスが悪くなってきたので、
CSVをZIPで圧縮することにしました。
C:\data\read.csv を読み込んで同じ場所に write.zip として出力するという処理を、
System.IO.Compression 系の ZipArchive を使って、
using (var zipStream = File.Create(@"C:\data\write.zip")) {
using (var archive = new ZipArchive(zipStream, ZipArchiveMode.Create)) {
var entry = archive.CreateEntry("read.csv");
using (var sourceStream = File.OpenRead(@"C:\data\read.csv")) {
using (var entryStream = entry.Open()) {
sourceStream.CopyTo(entryStream);
}
}
}
}
のようにしてみたところ、C:\data\write.zip は作成されるのですが、
これを解凍すると write\read.csv となってしまいます。
(write フォルダができて、その下に元のCSVができる。)
解凍した際にフォルダを含まないように
(フォルダを含んだ圧縮ファイルにならないように)
圧縮することはできませんでしょうか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
write.zip自体に「write」フォルダが作成されているのでは無く、zipの展開に使っているソフトが「write」フォルダを生成しているように思えます。
使用しているソフトによっては「アーカイブ名でフォルダを作成」のようなオプションがある場合があるので、そのチェックを外すとフォルダは作られなくなるはずですよ。
zipファイル自体にフォルダが含まれているかどうかは、zipファイルをエクスプローラーなどで開くと確認できると思います。
早速回答をいただきまして、ありがとうございます。
解凍する側のソフトの設定だとは知りませんでした。
単にエクスプローラから「開く」としてもフォルダが作成されていたので、
フォルダ付きで圧縮されているものとばかり思っていましたが、
使用している Lhaplus の「フォルダを自動作成する」の指定を外すと、
このソフトを使ったときにフォルダができていなかっただけでなく、
エクスプローラの「開く」からでもファイルのみ取り出すことができました。
勉強になりました。
おかげさまで、プログラムを作成できそうです。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
【マクロ】フォルダにファイル...
-
Excelvbaでブックをコピー名前...
-
フォルダを開いて、閉じるのプ...
-
複数選択フォルダの配列への格納
-
バッチファイル フォルダを...
-
デスクトップの画像をhtmlに表...
-
【コマンドプロンプト】名前順...
-
[VBS] Unicodeの文字化けを防ぎ...
-
ファイル名と同名のフォルダを...
-
保存先のフォルダ名を指定した...
-
Excelで指定したフォルダに保存...
-
[VB.net 2003] FileDialogでデ...
-
MATLABで複数のフォルダから情...
-
Debug フォルダは消していいの?
-
機種依存文字を含むフォルダ/フ...
-
フォルダ内のファイルの作成日...
-
VBAでファイル名を指定して保存...
-
エクセルマクロで指定フォルダ...
-
ディレクトリ名変更してコピー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
VBA 最新のフォルダ取得
-
デスクトップの画像をhtmlに表...
-
ファイル名と同名のフォルダを...
-
会社のネットワーク上のファイ...
-
ExcelのVBAでフォルダ指定がで...
-
Excelで指定したフォルダに保存...
-
VBA フォルダの複数選択ができない
-
【マクロ】ファイル名の日付に...
-
VB.NRT FolderBrowserDialogを...
-
【マクロ】フォルダにファイル...
-
ThisWorkbookがあるフォルダ更...
-
ディレクトリ名変更してコピー...
-
(C#)フォルダを指定するダイ...
-
VB6で7-ZIPのAPIを使用した圧縮...
-
VBプロジェクトでのフォルダ構...
-
パス名に2バイト文字(マルチバ...
-
Debug フォルダは消していいの?
-
フォルダにリンクを貼りたい
-
フォルダAから1つのファイルだ...
おすすめ情報