2009-08-22 34 views
12

Al tratar de extraer archivos zip me sale el error:Cómo extraer archivos ZIP con la línea de comandos de WinRAR?

c:\path\name.zip is not RAR archive
No files to extract

Mi código es:

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)); 

La versión de interfaz gráfica de usuario puede extraer archivos zip y 7z.

¿Por qué no funciona? ¿Cómo puedo extraer archivos zip y 7z?

(NOTA: Tengo diferente código fuente de 7zip supongo que puedo combinar los dos y sólo usar lo anterior cuando el archivo tiene una extensión rar Pero eso no me gusta esa solución...)

+0

intente utilizar la biblioteca COM UnRAR.dll en su lugar –

+0

Este es un hilo viejo, pero llegué aquí haciendo la misma pregunta. Ahora puede usar winrar.exe desde la línea de comandos y funcionará con archivos zip. – gwgeller

Respuesta

5

rar.exe de hecho, solo puede descomprimir archivos rar. No es lo mismo que WinRAR.

Para desempaquetar archivos ZIP en .NET, es posible que desee mirar la biblioteca DotNetZip en su lugar. Tiene una licencia compatible con software comercial, a diferencia de CSharpZipLib.

Si necesita apoyar RAR, así, puede utilizar unrar.dll con PInvoke:
http://www.rarlab.com/rar_add.htm
http://www.rarlab.com/rar/UnRARDLL.exe

O esto libary .NET unRAR:
http://www.chilkatsoft.com/rar-dotnet.asp

Tal vez para this one 7zip.

1

¡Puede utilizar la Biblioteca SevenZipSharp o DotNetZip en su aplicación!

Pero voy a ir por SevenZipSharp Lib ya que admite todos los archivos compatibles con 7-Zip.

Tanto la fuente como el binario están disponibles en los enlaces.

-1
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 

Las referencias a la lectura adicional:

+0

Creo que termino usando 7z pero la pregunta era para usar winrar no 7z. –

32

gratuito unrar.exe y la consola versión Rar.exe de WinRAR soporte de formatos de archivo RAR única. Esto se describe claramente en el segundo párrafo del manual para Rar.exe que es el archivo de texto Rar.txt en la carpeta de archivos de programa de WinRAR.

Es necesario utilizar WinRar.exe vez que apoya también otros formatos de archivo:

[path\winrar.exe] x [switches] [path to zip file] [files to extract, . for all files] [path folder to extract to]

Ejemplo:

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

la sintaxis, comandos e interruptores para la versión GUI WinRAR.exe se enumeran y describen con ayuda de WinRAR. Haga clic en el menú Ayuda el elemento de menú temas de ayuda, abierto en la etiqueta de ayuda Contenido el modo de línea de comandos elemento y leer las páginas de ayuda enumerados en este artículo.

Por ejemplo el interruptor -ibck compatibles sólo con WinRAR.exe pero no por Rar.exe es para el funcionamiento de la extracción en el fondo lo que significa versión GUI de WinRAR hace que la extracción minimizado a un icono en la bandeja del sistema de Windows.

+0

Esto funciona con los archivos .zip y .rar. Esta es una respuesta. – Edgar

Cuestiones relacionadas