C#で実行可能な自己解凍型アーカイブを作成する

自己解凍型アーカイブ(SFXまたはSEA)は、実行可能命令とともに圧縮データを含む特殊なタイプのファイルです。このアーカイブには、それ自体に含まれるファイルを抽出する機能があります。したがって、自己解凍型アーカイブを開くために、特定のエクストラクタまたはデコンプレッサアプリケーションは必要ありません。この記事では、.NETアプリケーション内からC#で実行可能な自己解凍アーカイブを作成する方法を学習します。

自己解凍型アーカイブを作成するためのC#.NET API

自己解凍型アーカイブを作成するには、Aspose.ZIP for.NETを使用します。これは強力で機能豊富なAPIであり、.NETアプリケーションのアーカイブ機能を非常に簡単に自動化できます。さらに、ZIP、TARなどのさまざまな一般的なアーカイブ形式をサポートしています。APIのDLLをダウンロードするか、NuGetを使用してインストールできます。

PM> Install-Package Aspose.Zip 

C#で自己解凍型アーカイブを作成する

Aspose.ZIP for .NETがインストールされていることを前提として、自己解凍型アーカイブの作成を開始しましょう。これは実行可能アーカイブになるため、拡張子は.exeになります。以下は、C#で実行可能な自己解凍アーカイブを作成する手順です。

  • まず、アーカイブ用の新しいFileStreamオブジェクトを作成します。
  • 次に、Archiveクラスのオブジェクトを作成します。
  • Archive.CreateEntry(string, string)メソッドを使用してアーカイブにファイルを追加します。
  • SelfExtractorOptionsクラスのオブジェクトを作成して、自己解凍型アーカイブのオプションを選択します。
  • タイトル、アイコンなどのオプションを設定します。
  • 最後に、Archive.Save(FileStream, new ArchiveSaveOptions())メソッドを使用して自己解凍型アーカイブファイルを保存します。

次のコードサンプルは、.NETで実行可能な自己解凍型アーカイブを作成する方法を示しています。

// FileStreamを作成してSFXアーカイブを保存します
using (FileStream zipFile = File.Open("Archives/archive.exe", FileMode.Create))
{
    // 新しいアーカイブを作成する
    using (var archive = new Archive())
    {
        // アーカイブするファイル/フォルダを追加する
        archive.CreateEntry("SourceFile1.txt", "Archives/SourceFile1.txt");

        // SFXアーカイブのオプションを作成および設定する
        var sfxOptions = new SelfExtractorOptions()
        {
            ExtractorTitle = "Extractor",
            CloseWindowOnExtraction = true, 
        };

        // SFXアーカイブを作成する
        archive.Save(zipFile, new ArchiveSaveOptions() { SelfExtractorOptions = sfxOptions });
    }
}

コマンドラインを使用した自己解凍型アーカイブの実行

前のセクションで作成した自己解凍型アーカイブは、ダブルクリックすることで抽出できます。ただし、コマンドラインを使用する場合は、次のコマンドでアーカイブを抽出できます。

C:>archive.exe -autoExtract 

ここで、-autoExtractは、アーカイブを抽出できる主要なオプションです。アーカイブがパスワードで保護されている場合は、次のコマンドに示すように、-passwordオプションを使用してパスワードを指定できます。

C:>archive.exe -autoExtract -password:T0p$ecret

実行可能な自己解凍アーカイブを操作するコマンドの完全なリストは、この記事にあります。

無料のAPIライセンスを取得する

無料の一時ライセンスを取得することで、評価の制限なしにAspose.ZIPfor.NETを使用できます。

結論

この記事では、C#で自己解凍型アーカイブ(SFXまたはSEA)を作成する方法を学習しました。さらに、コマンドラインを使用して自己解凍型アーカイブを抽出する方法についても説明しました。 Aspose.ZIP for .NETをインストールして、提供されているコードサンプルを.NETアプリケーションに埋め込むだけです。さらに、ドキュメントを使用して、Aspose.ZIPfor.NETの詳細を調べることができます。また、フォーラムにクエリを投稿することもできます。

関連項目