c# - 在 C# 中解压缩存档

标签 c# .net command-line cmd compression

我想静默提取.rar 压缩包。 .Net 在 IO.Compression 中没有任何 Rar 类,所以我想使用 cmd(它比外部 dll 更好)。它提取,但不是在静默模式下。我做错了什么?

const string source = "D:\\22.rar";
string destinationFolder = source.Remove(source.LastIndexOf('.'));
string arguments = string.Format(@"x -s ""{0}"" *.* ""{1}\""", source, destinationFolder);
Process.Start("winrar", arguments);

最佳答案

我自己使用了这段代码(您添加的代码):

const string source = "D:\\22.rar";
string destinationFolder = source.Remove(source.LastIndexOf('.'));
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.FileName = "\"C:\\Program Files\\WinRAR\\winrar.exe\"";
p.StartInfo.Arguments = string.Format(@"x -s ""{0}"" *.* ""{1}\""", source, destinationFolder);
p.Start();
p.WaitForExit();

这将在后台启动 WinRAR 程序,并在文件完成解压缩后将控制权返回给您。

希望对你有帮助

关于c# - 在 C# 中解压缩存档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23578704/

相关文章:

C# SQL Server Coonnectivity - 持续连接(客户端 - 服务器

.NET 属性与 Java 注释 : Which Came First?

c# - 时间跨度减去秒表倒计时

.net - 用 Nemerle 编写的应用程序是否需要包含任何 DLL 文件?

c# - 应用程序调用了为不同线程编码的接口(interface) - Xamarin Forms

c# - MVC - 将附加信息传递给 View

java - 有没有办法用java来执行一系列的命令行

java - 从 cmd 编译 java 程序时,我得到 "error: cannot find symbol",但在 Eclipse 中却没有

c# - 如何自动注入(inject)到所有子对象

android - 找不到命令 'lint'