2

.net 4.0 以下でオープン ソースの dll を使用せずに c シャープでファイルを解凍できるかどうか疑問に思っていましたか?

「シェル」コマンドを使用する VBA コード (以下) があります。cシャープからも可能ですか?

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 シャープで行い、混ぜ合わせたりしないようにしたいと考えています。確かにそれは実行可能である必要がありますか、それとも同様に単純な解決策があるはずですか?

4

1 に答える 1

1

を使用して C# でプロセスを開始できますProcess.Start

コードは次のようになります (テストされていません..):

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
}

sharpziplibzip については、私が多くのプロジェクトで成功を収めているように、サードパーティのライブラリを使用することを検討してください。

これらのサンプルをご覧ください: https://github.com/icsharpcode/SharpZipLib/wiki/Zip-Samples

于 2013-07-23T10:52:26.073 に答える