如何使用密码正确格式化c#7-zip字符串?

问题描述

因此,我正在用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);