0

サードパーティの FastZip を使用してフォルダーを圧縮しています。既存のファイルを使用して新しいフォルダーを圧縮すると、abc.zip と言うと、Fast Zip はこの古い abc.zip を上書きし、古いファイルを削除して新しいファイルのみを圧縮します。

誰でも解決策を知っています。

編集->私は自分でそれを行うことができました。必要な場合の解決策は次のとおりです。

using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.Core;

string zipfilename = "abc.zip"; // Your required zip file
string fdrname = "abc";

if (!File.Exists(zipfilename)) // If file zip does not exists
{
    Directory.CreateDirectory(fdrname); // Create folder with same name
    FastZip fz = new FastZip();         // using FastZip dll
    fz.CreateZip(zipfilename, fdrname, true, null); // create zip file (ofcourse its empty)
}
if (Directory.Exists(fdrname)) // delete folder which you have created (optional)
    Directory.Delete(fdrname);

    try
    {
        ZipFile zip = new ZipFile(zipfilename); // by Using ZipFile dll
        zip.BeginUpdate();
        zip.Add(pathtofile); // add file path which you want to zip in abc.zip
        zip.CommitUpdate();
        zip.Close();
    }
    catch (Exception e)
    {
        Console.WriteLine((e.ToString());
    }
}
4

1 に答える 1

2

圧縮する前に、ファイルの存在をいつでも手動でテストできます。

if (!File.Exists(filename))
    fastZip.CreateZip(filename, @"C:\SourceDirectory", recurse, filter);
else
    //exception or message
于 2013-10-10T09:28:58.817 に答える