タイトルには、ジップ内にジップを作成しようとしています。ZipArchiveクラスを使用してC#でアーカイブ内にアーカイブを作成します
私は上記の「TargetFilePath」
var projectDirectoryPath = currentProjectViewModel.DirectoryPath;
ZipFile.CreateFromDirectory(projectDirectoryPath, [email protected]"/Project.zip");
という変数で作成されたzipアーカイブをcパスので、私は想定しています、動作しません持っている:\ test.zip \ project.zipが有効ではありませんパス。
編集のために:私は文字通りいくつかのファイルを圧縮し、別のアーカイブの中にそのジッパーを配置したいと思います。それは、System.IO.Compressionを使用している必要があります。サードパーティのメソッドはありません。私の理解から
あなたはzipファイルのターゲットアドレスを作成する必要があり、そして、また、私の経験から、そのターゲットアドレスは、「C:\ test.zip \ project.zip」として無効なパスすることはできません
再帰呼び出しは多分ですか? –
'projectDirectoryPath'に.zipファイル+その他のファイルがある場合は、それだけで動作します。既に.zipファイルがあり、そのファイルにzipファイルを追加する場合は、[this](https://msdn.microsoft.com/en-us/library/hh158346(v=vs.110).aspx )それを行う一つの方法ですが、それは私の痛みのように見えます。私はちょうど内側のzipファイルを作成してから、zipを作成してもう一方のファイルを追加するのではなく、zipファイルを作成します。その他のオプションについては、[こちら](https://msdn.microsoft.com/en-us/library/system.io.compression.zipfile(v = vs.110).aspx)を参照してください。 – Quantic
また、既存のzipファイルをディレクトリに抽出し、もう一方のzipファイルをコピーして、同じコマンドを使用してそのフォルダを圧縮してください。私はこれを言うが[ZipArchive.CreateEntry](https://msdn.microsoft.com/en-us/library/hh158346(v=vs.110).aspx)はちょうど「このファイルをzipに変換するには、何らかの形でファイルをストリームしなければなりません。あなたがリソースを持っているならば、人生を楽にするためにいくつかのIOと時間を使ってください。 – Quantic