问题描述
因此,我正在用C#编写一个加密应用程序,该应用程序调用7zip使用先前输入的密码将文件夹加密到7zip存档中。问题是,由于某种原因,我实际上正在尝试将文件压缩为7zip文件本身压缩为7zip档案,而实际上它只是一个普通文件夹,因此不确定为什么会发生这种情况。这是代码:
b
运行该程序时,7zip返回此错误:
文件名,目录名称或卷标签语法不正确。无法打开文件c:\ encryptedfileshere.7z -p09 / 28/2020 11:17:29 AM c:\ putfilesforencryptionhere.7z。
a
,因为它是以前格式输入的密码。我想知道为什么7-zip在普通文件夹中会在7zip文件中将c:\ putfilesforencryption视为7zip文件?
非常感谢。
解决方法
设置p.Arguments
的值时,在\"
之前但之后没有引号targetName
。因此,以下字符串的整体将被解释为存档名称(如错误消息中所示)。
尝试
p.Arguments = "a \"" + targetName + "\" -p" + password + " " + sourceName;
或使用ArgumentList
避免转义问题。
p.ArgumentList.Add("a");
p.ArgumentList.Add(targetName);
p.ArgumentList.Add("-p" + password);
p.ArgumentList.Add(sourceName);