Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用命令行参数进行rar/UNRR_C#_Winrar - Fatal编程技术网

C# 如何使用命令行参数进行rar/UNRR

C# 如何使用命令行参数进行rar/UNRR,c#,winrar,C#,Winrar,我已经通过互联网了解了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_LO

我已经通过互联网了解了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

您需要加密文件数据和标题

根据(命令行模式>开关>“-hp[pwd]-加密文件数据和标题”)

此开关类似于-p[p],但开关-p仅加密文件数据 并使文件名等其他信息可见。这个开关 加密所有敏感归档区域,包括文件数据、文件名、, 大小、属性、注释和其他块,因此它提供了更高的 安全级别

以下是使用命令行访问它的方式:

C:\Program Files\WinRAR\WinRAR.exe unrar x -p pw PL_LOCKED_ARCHIVE.rar
语法: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();
}

StartInfo
使用命令行定义运行
WinRAR.exe
的结果:

C:\Program Files\WinRAR\WinRAR.exe unrar x -p pw PL_LOCKED_ARCHIVE.rar
这当然是错误的,因为您不想运行
WinRAR.exe
,而第一个参数是对控制台版本
Rar.exe
unar.exe
的引用。结果很可能是错误消息,因为无效的命令
rar
分别
unar
,因为
WinRAR.exe
的第一个参数必须是
a
x

因此,首先您需要更正
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
的所有命令和开关。如果在没有任何参数的情况下执行,unar.exe也会输出一个简短的帮助

最后但并非最不重要的一点是,有一个完整的
Rar.exe
手册,当然也可以从Rar存档中提取文件和文件夹,这使得额外使用
unrr.exe
毫无用处。本手册为
WinRAR
程序文件文件夹中的文本文件
Rar.txt
,您应自上而下阅读。我建议在读取命令行的同时构建命令行,并首先在命令提示符窗口中测试命令行

注1:
Rar.exe
是共享软件。只有
unrr.exe
是免费软件

注2:
GUI版本
WinRAR.exe
支持多个控制台版本
Rar.exe
,因此交换机列表略有不同。有关
WinRAR.exe
的完整文档,可以在使用帮助-帮助主题打开的WinRAR帮助中找到,或者按F1键。在选项卡内容的帮助中打开项目命令行模式并阅读
WinRAR.exe
也是共享软件。

问题是没有创建rar文件,也不是没有加密文件名似乎没有任何效果,即使我这样做了
p.StartInfo.Arguments=@“rar a-hp”+pw+@“C:\Users\Elmeri\PL\u LOCKED_ARCHIVE.rar”+fld它不会在C:\Users\Elmeri中创建rar