-2

C# を使用してアプリケーションを開発しており、いくつかのファイルを別の場所から zip ファイルに圧縮しようとしています。

私の問題は、この zip ファイル内にファイルの構造とは異なる構造を持たせたいということです。

例:

FileA -> example.zip: \DirX\DirY
FileB -> example.zip: \DirX\DirZ
FileC -> example.zip: \DirW

フォルダー構造は保持できますが、「宛先」パスは変更できません。これを達成するための外部ツールや.Net内のプログラムはありますか?

4

2 に答える 2

2

dotnetzipを試しましたか?AddEntry- これは、 /AddFileメソッドを使用して zip ファイル内の名前として別のパスを使用するだけで簡単に実行できます。

DotNetZip: 動的に作成されたアーカイブ ディレクトリにファイルを追加するも参照してください。

于 2013-02-15T14:28:46.463 に答える
0

堅牢なソリューション - エントリごとに zip ファイルを処理し、置換パスを使用して抽出/圧縮します (これはファイルの実際のパスである可能性があり、圧縮する前に一時フォルダーに配置するか、抽出後に必要な場所にコピーできます)。ファイルの元のパスをテキストとして保存し、zip に保存することもできます (いずれにせよ、指定された構造を持つため、「extract.txt」ファイルを予約して、元のファイルの場所を抽出用に保存することができます)。

ライブラリ (ICSharpCode.SharpZipLib など) を使用するか、.net Framework 4.5 ZipArchiveを使用して、zip ファイル自体で基本的な操作を実行できます。

于 2013-02-15T14:38:24.727 に答える