使用Shell命令在.net 4.0中无需外部包即可解压缩

本文关键字:外部 包即可 解压缩 命令 Shell net 使用 | 更新日期: 2023-09-27 18:24:18

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

我有一些VBA代码(下面)使用"Shell"命令。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语言完成,而不是混搭。这肯定是可行的,还是应该有一个同样简单的解决方案?

使用Shell命令在.net 4.0中无需外部包即可解压缩

您可以使用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