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