この短いチュートリアルでは、C# で RAR を ZIP に変換する方法について説明します。これには、開発環境を設定するためのすべての詳細、アプリケーションを作成するためのコーディング手順のリスト、C#** で **RAR を ZIP に変換するための実行可能なサンプル コードが含まれています。また、RAR ファイルから ZIP にデータを転送する際にコンテンツをフィルタリングするためのさまざまなオプションについても学習します。
C# で RAR ファイルを ZIP に変換する手順
- Aspose.ZIP for .NET をプロジェクトに追加して、RAR を ZIP に変換します
- ソース RAR ファイルを RarArchive オブジェクトにロードします
- ZIP archive を作成する
- ロードされた RAR ファイル内のすべてのエントリを反復処理します。
- ループ内のエントリがフォルダーの場合、宛先 ZIP アーカイブにフォルダーを作成します。
- エントリがファイルの場合は、ファイルの内容を宛先の ZIP アーカイブにコピーします。
- 結果の ZIP ファイルをディスクに保存します
これらの手順では、C# で RAR を ZIP に変更するプロセスについて説明します。 RAR および ZIP ファイルの処理に使用できる 2 つの異なるクラスがあり、それぞれ、RarArchive および Archive という名前が付けられます。RarArchive クラスには、RAR ファイル内のすべてのエントリにアクセスする機能が含まれています。これらのエントリは、フォルダがそのまま生成されるように宛先 ZIP ファイルにコピーされ、ファイルはディスクに保存される前に ZIP ファイル内のそれぞれのフォルダにコピーされます。
C# で RAR を ZIP に変換するコード
using System.IO; | |
using Aspose.Zip; | |
using Aspose.Zip.Rar; | |
class Program{ | |
static void Main(string[] args) // Turn RAR to ZIP file using C# | |
{ | |
// Set the license | |
new License().SetLicense("Aspose.Total.lic"); | |
// Load the source RAR file | |
RarArchive rarFile = new RarArchive("Sample.rar"); | |
// Create a ZIP archive | |
Archive zipFile = new Archive(); | |
// Iterate through the RAR entries | |
for (int index = 0; index < rarFile.Entries.Count; index++) | |
{ | |
// Copy contents to ZIP file | |
if (rarFile.Entries[index].IsDirectory) | |
zipFile.CreateEntry(rarFile.Entries[index].Name + "/", Stream.Null); | |
else | |
{ | |
var ms = new MemoryStream(); | |
rarFile.Entries[index].Extract(ms); | |
ms.Seek(0, SeekOrigin.Begin); | |
zipFile.CreateEntry(rarFile.Entries[index].Name, ms); | |
} | |
} | |
// Save the ZIP file | |
zipFile.Save("output.zip"); | |
} | |
} |
このコードは、C#* で *RAR から ZIP へのコンバータ ソフトウェアを開発するプロセスを示しています。 Entries コレクションには、現在のエントリがディレクトリであるかどうかを確認するために使用されるプロパティ IsDirectory が含まれており、それに応じてプログラムが続行されます。圧縮サイズ、作成時刻、最終アクセス時刻、変更時刻、名前、非圧縮サイズなどの他のプロパティを使用して、結果の ZIP ファイルに追加するエントリをフィルタリングすることもできます。
この記事では、C# で WINRAR を ZIP に変換する方法を説明しました。フォルダーを圧縮するプロセスについて知りたい場合は、C#でフォルダーを圧縮する方法 の記事を参照してください。