如何删除zip文件中的文件夹路径。我只想要zip文件中的txt文件

时间:2012-02-24 12:21:00

标签: asp.net sharpziplib

我正在从该文件夹生成一个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并使用归档根目录中的2 txt文件直接生成Hi.zip。我正在使用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();
}

1 个答案:

答案 0 :(得分: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();
}