1

我正在从文件夹中生成一个 zip 文件 D:\Nagaraj\Dotnet\Zipfile\Zipfile\Filebuild\Hi。文件夹中有2个txt文件。

但问题是 zip 文件中有路径D:\Nagaraj\Dotnet\Zipfile\Zipfile\Filebuild\Hi,而文件夹中有 2 个 txt 文件。

现在我需要删除路径D:\Nagaraj\Dotnet\Zipfile\Zipfile\Filebuild\Hi并直接Hi.zip在存档的根目录中生成带有 2 txt 文件的文件。我正在使用 SharpZipLib 创建存档。

protected void Page_Load(object sender, EventArgs e)
{
    StartZip("D:/Nagaraj/Dotnet/Zipfile/Zipfile/Filebuild/Hi",".zip");        
}

public void StartZip(string directory, string zipFileName)
{
    ZipFile z = ZipFile.Create(directory + zipFileName);
    z.BeginUpdate();
    string[] filenames = Directory.GetFiles(directory);
    foreach (string filename in filenames)
    {
        z.Add(filename);
    }
    z.CommitUpdate();
    z.Close();
}
4

1 回答 1

1

问题看起来是您如何创建 zip 文件。您在调用Add.

相反,只需使用Path.GetFileName方法传递文件名:

public void StartZip(string directory, string zipFileName)
{
    ZipFile z = ZipFile.Create(directory + zipFileName);
    z.BeginUpdate();

    string[] filenames = Directory.GetFiles(directory);

    foreach (string filename in filenames)
    {
        z.Add(Path.GetFileName(fileName));
    }
    z.CommitUpdate();
    z.Close();
}
于 2012-02-24T12:30:54.903 回答