C# DotNetZip创建包含文件路径的子文件夹
IC# DotNetZip创建包含文件路径的子文件夹,c#,dotnetzip,C#,Dotnetzip,I.zip使用DotNetZip的文件,但内部包含实际文件路径的子文件夹 示例:打开Zip>(用户)文件夹>(管理员)文件夹>(桌面)文件夹>文件1.csv 我可以知道我应该在哪里更改为.zip只包含文件本身吗 using (ZipFile zip = new ZipFile()) { zip.Password = "password"; zip.AddFile("C:\\Users\\Admin\\Desktop\\File1.csv")
.zip
使用DotNetZip
的文件,但内部包含实际文件路径的子文件夹
示例:打开Zip>(用户)文件夹>(管理员)文件夹>(桌面)文件夹>文件1.csv
我可以知道我应该在哪里更改为.zip只包含文件本身吗
using (ZipFile zip = new ZipFile())
{
zip.Password = "password";
zip.AddFile("C:\\Users\\Admin\\Desktop\\File1.csv");
zip.Save("Encrypted_File1.zip");
}
我不确定如何更改.AddFile
语句,因为其他地方没有文件路径声明。基于,我相信您需要这样编写:
using (ZipFile zip = new ZipFile())
{
zip.Password = "password";
zip.AddFile("C:\\Users\\Admin\\Desktop\\File1.csv", "Admin\\Desktop\\File1.csv");
zip.Save("Encrypted_File1.zip");
}
另外,如果您正在处理许多文件,并且您有一个公共的基本路径,您可以使用类似于path.GetRelativePath
的方法来获取压缩路径:
using (ZipFile zip = new ZipFile())
{
string commonBasePath = "C:\\Users";
// for each file
string filePath = "C:\\Users\\Admin\\Desktop\\File1.csv";
string inZipPath = Path.GetRelativePath(commonBasePath, filePath);
zip.Password = "password";
zip.AddFile(filePath, inZipPath);
// done
// save
zip.Save("Encrypted_File1.zip");
}
请阅读并展示你的研究成果。嗨,约翰,谢谢你的建议。我尝试了你的
zip.AddFile
方法,但是.zip
文件没有出现在目录中。我正在对一些输入进行反复试验,以查看可能的效果。如果zip文件没有出现在目录中,我会怀疑您在错误的目录中查找。无论如何,这超出了这个问题的范围,因为您的原始代码也会有同样的问题。