私は、プログラムの中のいくつかのファイルをzipするために、codeplexのDotNetZip DLL(http://dotnetzip.codeplex.com/)を使用しています。ディレクトリ構造を保存したファイルを圧縮する
問題ディレクトリ構造を保持しているファイルを圧縮した後、zipファイルを解凍しているときに、すべての親フォルダが再び作成されていて、そのファイルしか表示できません。ソースファイルが存在する場合は非常に厄介です
g:\ Archive \ LogFiles \ W3SVC1 \ abc.logからファイルを圧縮し、解凍後に 'abc.zip'ファイルを作成すると、Archive \ LogFiles \ W3SVC1 \が作成されていて、abc.logファイルしか見ることができません。ここで 'g:'は私の共有ドライブの名前です。
これらの親フォルダをすべて削除して、すぐに圧縮してZipファイルに移動して開くことができます。 ZipファイルのPathプロパティを確認し、Archive \ LogFiles \ W3SVC1を表示しています。どうにか私はこれをプログラム的に削除する必要がありますが、簡単にオプションを見つけることはできません。私が使用しています
コードは次のようである:
using (ZipFile zip = new ZipFile())
{
if (fileExtension != null)
{
zip.AddFiles(from f in sourceDir.GetFiles() where f.FullName.EndsWith(fileExtension) select f.FullName);
}
else
{
zip.AddFiles(from f in sourceDir.GetFiles() select f.FullName);
}
zip.Save(DestinationDir + OutFileName);
}
私はまた、「偽の」しかし、誰の利益にreserveDirectoryHierarchyを設定することにより、Addfilesの過負荷方法を試してみました。
私に何をすべきか教えてください。
多くの方々のおかげです。