【问题标题】:How to remove folder path within zip file.I want only txt files in zip file如何删除 zip 文件中的文件夹路径。我只想要 zip 文件中的 txt 文件
【发布时间】:2012-02-24 12:20:59
【问题描述】:

我正在从文件夹中生成一个 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();
}

【问题讨论】:

  • 你使用的是什么压缩库?
  • 我正在使用sharpziplib库

标签: asp.net sharpziplib


【解决方案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();
}

【讨论】:

  • 我使用了上面的编码..问题是..我找不到zip文件在哪里创建或是否创建
  • 你必须原谅我,但我不认为我理解你的评论。你的意思是说创建zip文件后不知道那个zip文件是在磁盘的什么地方创建的吗?
  • ya.....我找出它创建的路径。这是在此路径“C:\ Program Files \ Microsoft Visual Studio 8 \ Common7 \ IDE”中创建的......但是问题是。我正在尝试打开该文件.....它会显示错误“损坏的数据”
  • 我不熟悉Sharpziplib,但我建议查看他们的文档,看看是否有用于创建 zip 文件的文件夹的配置选项。
猜你喜欢
  • 2015-01-18
  • 1970-01-01
  • 2021-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多