Inhalt WinRar Datei ohne diese zu öffnen

Beginnerin

Mitglied
Hallo zusammen,

ich bin mir nicht sicher, ich unter der Rubrik C++ richtig bin. Wenn nicht: Schonmal sorry!

Ich möchte aus meinem VC++ Programm den Inhalt einer WinRar Datei anzeigen lassen.
Mit WinZip und zip-Dateien geht es recht einfach so:
wzunzip.exe -vbme "datei.zip" > "beschreibung.txt"
Führe ich den Befehl über system(befehl) aus, erhalte ich in "beschreibung.txt" die Dateinamen.
Allerdings muss ich den Inhalt von zip und rar Dateien anzeigen lassen können.
Kennt ihr einen ähnlichen Command-Line Befehl für WinRar?
Wenn es den nicht gibt (ich suche jetzt schon eine ganze Weile): habt ihr eine Idee, wie ich ansonsten noch an die Dateinamen kommen kann, die in der .rar Datei stehen? (Ohne sie dabei zu öffnen?)

Vielen Dank bereits für eure Hilfe!
 
rar -? gibt mir folgendes aus:
Code:
RAR 3.51   Copyright (c) 1993-2005 Alexander Roshal   7 Oct 2005
Shareware version         Type RAR -? for help

Usage:     rar <command> -<switch 1> -<switch N> <archive> <files...>
               <@listfiles...> <path_to_extract\>

<Commands>
  a             Add files to archive
  c             Add archive comment
  cf            Add files comment
  cw            Write archive comment to file
  d             Delete files from archive
  e             Extract files to current directory
  f             Freshen files in archive
  i[par]=<str>  Find string in archives
  k             Lock archive
  l[t,b]        List archive [technical, bare]
  m[f]          Move to archive [files only]
  p             Print file to stdout
  r             Repair archive
  rc            Reconstruct missing volumes
  rn            Rename archived files
  rr[N]         Add data recovery record
  rv[N]         Create recovery volumes
  s[name|-]     Convert archive to or from SFX
  t             Test archive files
  u             Update files in archive
  v[t,b]        Verbosely list archive [technical,bare]
  x             Extract files with full path

<Switches>
  -             Stop switches scanning
  ad            Append archive name to destination path
  ag[format]    Generate archive name using the current date
  ap<path>      Set path inside archive
  as            Synchronize archive contents
  av            Put authenticity verification (registered versions only)
  av-           Disable authenticity verification check
  c-            Disable comments show
  cfg-          Disable read configuration
  cl            Convert names to lower case
  cu            Convert names to upper case
  df            Delete files after archiving
  dh            Open shared files
  ds            Disable name sort for solid archive
  e[+]<attr>    Set file exclude and include attributes
  ed            Do not add empty directories
  en            Do not put 'end of archive' block
  ep            Exclude paths from names
  ep1           Exclude base directory from names
  ep3           Expand paths to full including the drive letter
  f             Freshen files
  hp[password]  Encrypt both file data and headers
  id[c,d,p,q]   Disable messages
  ierr          Send all messages to stderr
  ilog[name]    Log errors to file (registered versions only)
  inul          Disable all messages
  isnd          Enable sound
  k             Lock archive
  kb            Keep broken extracted files
  m<0..5>       Set compression level (0-store...3-default...5-maximal)
  mc<par>       Set advanced compression parameters
  md<size>      Dictionary size in KB (64,128,256,512,1024,2048,4096 or A-G)
  ms[ext;ext]   Specify file types to store
  n<file>       Include only specified file
  n@            Read file names to include from stdin
  n@<list>      Include files in specified list file
  o+            Overwrite existing files
  o-            Do not overwrite existing files
  ol            Save symbolic links as the link instead of the file
  ow            Save or restore file owner and group
  p[password]   Set password
  p-            Do not query password
  r             Recurse subdirectories
  r0            Recurse subdirectories for wildcard names only
  rr[N]         Add data recovery record
  rv[N]         Create recovery volumes
  s[<N>,v[-],e] Create solid archive
  s-            Disable solid archiving
  sfx[name]     Create SFX archive
  si[name]      Read data from standard input (stdin)
  t             Test files after archiving
  ta<date>      Process files modified after <date> in YYYYMMDDHHMMSS format
  tb<date>      Process files modified before <date> in YYYYMMDDHHMMSS format
  tk            Keep original archive time
  tl            Set archive time to latest file
  tn<time>      Process files newer than <time>
  to<time>      Process files older than <time>
  ts<m,c,a>[N]  Save or restore file time (modification, creation, access)
  u             Update files
  v             Create volumes with size autodetection or list all volumes
  v<size>[k,b]  Create volumes with size=<size>*1000 [*1024, *1]
  ver[n]        File version control
  vn            Use the old style volume naming scheme
  vp            Pause before each volume
  w<path>       Assign work directory
  x<file>       Exclude specified file
  x@            Read file names to exclude from stdin
  x@<list>      Exclude files in specified list file
  y             Assume Yes on all queries
  z<file>       Read archive comment from file
Mit diesen Informationen solltest du weiterkommen :)

Azi
 
Hallo Azi,

vielen vielen Dank für deine Hilfe!
Ich hatte winrar.exe -h eingegeben.
Ich hab dann die windows-Hilfe erhalten in der auch fast alle Befehle hinterlegt werden. Nur nicht "l" für list, das ich brauche.

Ab jetzt mach ich mit rar.exe weiter.

DANKE!! :)
 
Hi.

Falls du die Dateiliste zufällig mit deinem Programm weiterverarbeiten willst, dann nimm zum Auflisten lieber "v" - da befindet sich der Dateinamen gleich einzeln auf einer Zeile, du mußt nur das erste Zeichen dieser Zeile ignorieren (da steht ein * wenn die Datei verschlüsselt im Archiv gespeichert ist). Und am besten unterdrückst du auch den Kommentar:
Code:
rar v -c- <rar-Datei>

Gruß
 
Zurück