TL;DR
サイトのホームページにあるサンプル コードはコンパイルされません。マルチパート RAR ファイル内のすべてのボリュームを一覧表示する方法は?
問題定義
多数のマルチパート RAR ファイルを含む Windows 10 フォルダーがあります。「ルート」rar とそのパーツを分離してから、独自のフォルダーに移動する必要があります。これを手動で行うには、フォルダを作成し、ルート rar と「part01.rar」、「part02.rar」などがすべて同じディレクトリにあるようにファイル名を調べます。
マルチパート ファイルが数十個ある場合、手動のプロセスは面倒なので、C# アプリを作成しています。私がこれまでに学んだことは、これらのマルチパート RAR ファイルの命名規則は一貫していないということです。これにより、ファイル名を調べて、文字列操作によってそれらがどこに属しているかを推測するという厄介な作業を余儀なくされました。カッコ悪い。
そのため、ファイル名を科学的かつ正確に取得することを目的として、SharpCompressをインポートしています。ドキュメントページには、私が望むことを正確に行うように見える例があります。メソッドをラップして、「試したこと」として紹介します。
private static void GetFileNames(FileInfo rarFileInfo)
{
var archive = ArchiveFactory.Open(rarFileInfo.FullName);
foreach (var entry in archive.Entries)
{
if (!entry.IsDirectory)
{
Console.WriteLine(entry.FilePath);
}
}
}
...そしてVSによって生成された赤いテキストに注意してください...
「FilePath」を解決できないため、コンパイルできません! 間違ったフレームワークを持っていますか? VS2013 で .NET 4.5 を使用しています。理論的には、ホーム サイトのドキュメント サンプルはコンパイルされていないため、ここにはすでに多くの質問があるはずですが、コンパイルされていません (私が確認しました)。
質問: SharpCompress を使用して、特定の RAR に関連付けられたすべてのボリュームを識別し、その名前を開発者が利用できるようにする方法。
注: WinRar API を使用してファイルを独自のディレクトリに解凍することもできますが、これはクライアントが望んでいることではありません。 後で実際に解凍します。目的は、関連するすべてのボリュームを独自のフォルダーにまとめることです。