8

私のマシンの C:\Program files に 7-zip 4.65 をインストールしました。ファイルを圧縮するために C# コードで使用したいと考えています。ファイル名は、ユーザーによって動的に提供されます。C# コードで 7zip を使用する方法のサンプル コードを教えてください。

4

5 に答える 5

10

上記の多くの回答がありますが、7zipを使用してファイルを圧縮または解凍するために、以下の言及コードを使用しました

システムに 7zip アプリケーションが必要です。

     public void ExtractFile(string source, string destination)
        {
            // If the directory doesn't exist, create it.
            if (!Directory.Exists(destination))
                Directory.CreateDirectory(destination);

            string zPath = @"C:\Program Files\7-Zip\7zG.exe";
// change the path and give yours 
            try
            {
                ProcessStartInfo pro = new ProcessStartInfo();
                pro.WindowStyle = ProcessWindowStyle.Hidden;
                pro.FileName = zPath;
                pro.Arguments = "x \"" + source + "\" -o" + destination;
                Process x = Process.Start(pro);
                x.WaitForExit();
            }
            catch (System.Exception Ex) {
              //DO logic here 
              }
        }

zipファイルを作成するには

public void CreateZip()
{
    string sourceName = @"d:\a\example.txt";
    string targetName = @"d:\a\123.zip";
    ProcessStartInfo p = new ProcessStartInfo();
    p.FileName = @"C:\Program Files\7-Zip\7zG.exe";
    p.Arguments = "a -tgzip \"" + targetName + "\" \"" + sourceName + "\" -mx=9";
    p.WindowStyle = ProcessWindowStyle.Hidden;
    Process x = Process.Start(p);
    x.WaitForExit();
}
于 2014-09-11T12:16:25.217 に答える
5

バイナリ バージョンの代わりに、ソース コードが必要です。

これはLZMA SDKとして入手できます。

CSそこには、7zip ファイルのアルゴリズムの C# 実装を含むフォルダーがあります。

于 2010-07-08T13:26:13.140 に答える
3

この 7zip 用の C# インターフェイスを試しましたか: http://www.codeproject.com/KB/DLL/cs_interface_7zip.aspx

[編集] これはすでに回答されているようです: 7zip (LZMA) をサポートする C# 用の無料の圧縮ライブラリ

その他のライブラリ:

http://www.eggheadcafe.com/tutorials/aspnet/064b41e4-60bc-4d35-9136-368603bcc27a/7zip-lzma-inmemory-com.aspx

http://sevenzipsharp.codeplex.com/

http://www.7-zip.org/sdk.html - 公式サイトからなので、おそらくこれを使用するのが最善です

于 2010-07-08T12:53:55.387 に答える
0

c:\program files にインストールされているものを使用したい場合は、System.Diagnostics.Processコマンド ライン アプリを実行するために使用できます - http://msdn.microsoft.com/en-us/library/system.diagnostics.process .aspx

パラメータを渡すのも簡単です。ここにはたくさんの例があります - http://www.c-sharpcorner.com/UploadFile/DipalChoksi/ShellCommandsInCS12032005042031AM/ShellCommandsInCS.aspx

于 2010-07-08T13:41:42.823 に答える
0

または、J# zip ライブラリ (.Net Framework に含まれています) のサンプルを使用できます: http://weblogs.asp.net/jgalloway/archive/2007/10/25/creating-zip-archives-in-net -外部ライブラリのようなsharpziplib.aspxなし

于 2010-07-08T12:55:26.273 に答える