C# DotNetZip创建包含文件路径的子文件夹

C# 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")

I
.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文件没有出现在目录中,我会怀疑您在错误的目录中查找。无论如何,这超出了这个问题的范围,因为您的原始代码也会有同样的问题。