使用Shell命令在.net 4.0中没有外部包解压缩?

时间:2013-07-23 09:44:45

标签: c#

我想知道是否可以在.net 4.0或更低版本中使用开源dll解压缩c sharp中的文件?

我有一些使用“Shell”命令的VBA代码(下面)。这也可能来自c sharp吗?

Sub UnzipMe(path)

Dim strDOSCMD As String
Dim filename As String
Dim i As Integer


filename = path + "\test.txt"
strDOSCMD = "unzip -n " + path + "\zipfile.zip -d " + path
'SEND TO DOS
retval = Shell(strDOSCMD, vbHide)


End Sub

这很好用而且非常简单,但我想用c锐利而不是混合搭配。当然应该是可行的,或者应该有一个同样简单的解决方案?

1 个答案:

答案 0 :(得分:1)

您可以使用Process.Start在C#中启动流程。

您的代码看起来像(未经过测试..):

public void UnzipMe(string path){
    System.Diagnostics.Process process = new System.Diagnostics.Process();
    System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
    startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
    startInfo.FileName = "cmd.exe";
    startInfo.Arguments = "/C unzip -n " + path + "\zipfile.zip -d " + path;
    process.StartInfo = startInfo;
    process.Start();
    //do some extra stuff here
}

对于zip内容,请考虑使用像sharpziplib这样的第三方库。我在许多项目中成功使用它。

看看这些样本:https://github.com/icsharpcode/SharpZipLib/wiki/Zip-Samples