我已经通过互联网查看了winrar的命令行参数是如何工作的,这是我到目前为止所做的
void LOCK(string fld, string pw)
{
Process p = new Process();
p.StartInfo.FileName = @"C:\Program Files\WinRAR\WinRAR.exe";
p.StartInfo.Arguments = "rar a -p" + pw + " PL_LOCKED_ARCHIVE.rar " + fld;
p.Start();
}
void UNLOCK(string fld, string pw)
{
Process p = new Process();
p.StartInfo.FileName = @"C:\Program Files\WinRAR\WinRAR.exe";
p.StartInfo.Arguments = "unrar x -p" + pw + " PL_LOCKED_ARCHIVE.rar";
p.Start();
}
然而,它似乎无法在任何地方创建任何存档,测试文件夹为C:\ PicsAndStuff
答案 0 :(得分:3)
您定义的StartInfo
导致使用命令行运行WinRAR.exe
:
C:\Program Files\WinRAR\WinRAR.exe unrar x -p pw PL_LOCKED_ARCHIVE.rar
这当然是错误的,因为您不想运行WinRAR.exe
,第一个参数是对控制台版本Rar.exe
或UnRAR.exe
的引用。结果很可能是错误消息,因为rar
命令unrar
无效,因为a
的第一个参数必须是x
或WinRAR.exe
。
首先,您需要更正StartInfo
:
void LOCK(string fld, string pw)
{
Process p = new Process();
p.StartInfo.FileName = @"C:\Program Files\WinRAR\Rar.exe";
p.StartInfo.Arguments = "a -p" + pw + " PL_LOCKED_ARCHIVE.rar " + fld;
p.Start();
}
void UNLOCK(string fld, string pw)
{
Process p = new Process();
p.StartInfo.FileName = @"C:\Program Files\WinRAR\UnRAR.exe";
p.StartInfo.Arguments = "x -p" + pw + " PL_LOCKED_ARCHIVE.rar";
p.Start();
}
当在命令提示符窗口中简单地运行Rar.exe
而没有任何参数时,将简要解释控制台版本Rar.exe
的所有命令和开关。如果在没有任何参数的情况下执行,UnRAR.exe
也会输出一个简短的帮助。
最后但并非最不重要的是,Rar.exe
有一本完整的手册,当然也可以从RAR档案中提取文件和文件夹,这使UnRAR.exe
的其他用法无用。手册是Rar.txt
程序文件文件夹中的文本文件WinRAR
,您应该从上到下阅读。我建议在读取命令行时构建命令行,并在命令提示符窗口中首先测试命令行。
注1:
Rar.exe
是共享软件。只有UnRAR.exe
是免费软件。
注2:
GUI版本WinRAR.exe
支持的不仅仅是控制台版本Rar.exe
,因此交换机列表略有不同。可以在帮助 - 帮助主题或按 F1 打开的 WinRAR 的帮助下找到WinRAR.exe
的完整文档。在选项卡目录项目命令行模式的帮助中打开并阅读。 WinRAR.exe
也是共享软件。
答案 1 :(得分:1)
您需要加密文件数据和标头。
根据Documentation (命令行模式&gt;开关&gt;&#34; -hp [pwd] - 加密文件数据和标题&#34;) < /强>:
此开关类似于-p [p],但switch -p仅加密文件数据 并保留其他信息,如文件名可见。这个开关 加密所有敏感的归档区域,包括文件数据,文件名, 大小,属性,注释和其他块,所以它提供更高 安全等级。
这是使用命令行访问它的方法:
语法:rar a -hp [MyPassword] -r [filepath] [folderpath]
"C:\Program Files\WinRAR\WinRAR.exe" a -hp12345678 -r d:\zipProject d:\Project
C#代码:
void LOCK(string fld, string pw)
{
Process p = new Process();
p.StartInfo.FileName = @"C:\Program Files\WinRAR\WinRAR.exe";
p.StartInfo.Arguments = "rar a -hp" + pw + " PL_LOCKED_ARCHIVE.rar " + fld;
p.Start();
}