16

zipファイルを抽出しようとすると、次のエラーが発生します。

c:\ path\name.zipはRARアーカイブでは
ありません抽出するファイルがありません

私のコードは次のとおりです。

p.StartInfo.FileName = @"C:\Program Files\WinRAR\rar.exe";
p.StartInfo.Arguments = string.Format("x -o- {2} \"{0}\" * \"{1}\"\\ ",
  szFN,
  outFolder,
  passWord == null ? "" : string.Format("-p\"{0}\"", passWord));

GUIバージョンでは、zipファイルと7zファイルを抽出できます。

なぜこれが機能しないのですか?zipファイルと7zファイルを抽出するにはどうすればよいですか?

(注:7zipのソースコードは異なります。2つをマージして、ファイルの拡張子がrarの場合にのみ上記を使用できると思います。しかし、その解決策は好きではありません。)

4

4 に答える 4

44

WinRARの無料unrar.exeおよびコンソール バージョンRar.exeは、RAR アーカイブ形式のみをサポートします。これは、 WinRARの program files フォルダー内のテキスト ファイルであるマニュアルの 2 番目の段落で明確に説明されています。Rar.exeRar.txt

WinRar.exe代わりに、他のアーカイブ形式もサポートするものを使用する必要があります。

[パス\winrar.exe] x [スイッチ] [zip ファイルへのパス] [抽出するファイル、. すべてのファイルの場合] [解凍先のパス フォルダー]

例:

"%ProgramFiles%\WinRAR\winrar.exe" x -ibck c:\file.zip *.* c:\folder\

GUI バージョンの構文、コマンド、およびスイッチは、 WinRARWinRAR.exeのヘルプにリストされ、説明されています。メニューヘルプメニュー アイテムヘルプ トピックをクリックし、ヘルプ タブコンテンツアイテムコマンド ライン モードで開き、このアイテムの下にリストされているヘルプ ページを読みます。

たとえば、-ibckのみでサポートされ、 ではサポートされてWinRAR.exeいないスイッチは、抽出をバックグラウンドで実行するためのものです。つまり、 WinRARRar.exeの GUI バージョンでは、抽出が Windows システム トレイのアイコンに最小化されます。

于 2013-10-12T18:16:21.873 に答える
5

rar.exe実際、rar ファイルのみを解凍できます。WinRAR とまったく同じではありません。

.NET で ZIP ファイルを解凍するには、代わりにDotNetZipライブラリを参照することをお勧めします。CSharpZipLib とは異なり、商用ソフトウェアと互換性のあるライセンスがあります。

RAR もサポートする必要がある場合は、pinvoke で UnRAR.dll を使用できます:
http://www.rarlab.com/rar_add.htm
http://www.rarlab.com/rar/UnRARDLL.exe

または、この .NET unRAR ライブラリ:
http://www.chilkatsoft.com/rar-dotnet.asp

おそらくこれは7zip用です。

于 2009-08-22T10:06:12.693 に答える
1

SevenZipSharpアプリケーションでまたはDotNetZipライブラリのいずれかを使用できます。

しかしSevenZipSharp、7-Zip でサポートされているすべてのアーカイブをサポートする Lib を選びます。

ソースとバイナリの両方がリンクで利用可能です!

于 2012-05-15T09:03:36.833 に答える
0
for /f "tokens=*" %G in ('dir /on /b "D:\BACKUP_DATI\EXCEL\OPER*.ZIP"') do "C:\Program Files\7-Zip\7z.exe" x  "..\%G" –aoa

さらに読むための参照:

于 2012-10-01T11:37:00.460 に答える