ERLEDIGT
NEIN
NEIN
ANTWORTEN
9
9
ZUGRIFFE
731
731
EMPFEHLEN
-
15.04.10 14:55 #1
- Registriert seit
- Mar 2010
- Beiträge
- 8
Hallo,
ich hab folgendes Porblem.
Ich hab mehrere zipdateien die auch ziemlich gross sind. Jetzt suche ich nach einer Datei die in einer zipdatei ist. ich weiss nur nicht in welcher. Gibt es eine möglichkeit nach den Dateinamen in der Zipdatei zu suchen
und feststellen ob die Datei da überhaupt drin ist. da ich fürs entpacken aller zipdateien ewig brauchen würde.
habt ihr eine ahnung wie ich das am besten implementieren könnte. Ich bin für jede Hilfe dankbar
-
15.04.10 15:06 #2
- Registriert seit
- Aug 2001
- Ort
- Österreich, Stmk, Graz
- Beiträge
- 2.783
Hi.
Je nachdem wieviele Dateien es sind solltest doch auch manuell nachsehen können? Mit einem entsprechenden Packprogramm öffnen, und nachsehen was drinnen ist. Dabei wird ja noch nichts entpackt.
Wenn es weniger Aufwand ist, schnell mal ein Programm zu erstellen, kannst dir aber die #ziplib ansehen.
Hier ein Codebeispiel von denen. Es listet einfach die Dateien in einem Zipfile auf, und gibt diese gegebenenfalls auch aus.. diesen Teil brauchst aber ja nicht zu verwenden.
lg,..
Code csharp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
// project created on 10.11.2001 at 13:09 using System; using System.Text; using System.Collections; using System.IO; using System.Diagnostics; using System.Runtime.Serialization.Formatters.Binary; using ICSharpCode.SharpZipLib.BZip2; using ICSharpCode.SharpZipLib.Zip; using ICSharpCode.SharpZipLib.Zip.Compression; using ICSharpCode.SharpZipLib.Zip.Compression.Streams; using ICSharpCode.SharpZipLib.GZip; class MainClass { public static void Main(string[] args) { // Perform simple parameter checking. if ( args.Length < 1 ) { Console.WriteLine("Usage ViewZipFile NameOfFile"); return; } if ( !File.Exists(args[0]) ) { Console.WriteLine("Cannot find file '{0}'", args[0]); return; } // For IO there should be exception handling but in this case its been ommitted byte[] data = new byte[4096]; using (ZipInputStream s = new ZipInputStream(File.OpenRead(args[0]))) { ZipEntry theEntry; while ((theEntry = s.GetNextEntry()) != null) { Console.WriteLine("Name : {0}", theEntry.Name); Console.WriteLine("Date : {0}", theEntry.DateTime); Console.WriteLine("Size : (-1, if the size information is in the footer)"); Console.WriteLine(" Uncompressed : {0}", theEntry.Size); Console.WriteLine(" Compressed : {0}", theEntry.CompressedSize); if ( theEntry.IsFile ) { // Assuming the contents are text may be ok depending on what you are doing // here its fine as its shows how data can be read from a Zip archive. Console.Write("Show entry text (y/n) ?"); if (Console.ReadLine() == "y") { int size = s.Read(data, 0, data.Length); while (size > 0) { Console.Write(Encoding.ASCII.GetString(data, 0, size)); size = s.Read(data, 0, data.Length); } } Console.WriteLine(); } } // Close can be ommitted as the using statement will do it automatically // but leaving it here reminds you that is should be done. s.Close(); } } }
With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
Aaron Satie
Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
Captain Jean-Luc Picard, Stardate ~41294.5
Tutorials.de chattet. Hier gibts auch .net Support ^^
Klickt auf chattet und nutzt den Webchat, oder verbindet euch zu irc.tutorials.de - Channel #Tutorials.de
(moo)blog furred.net // SiteInfo für WP7 // Pastebin für WP7 // BlogEngine.net Extensions
-
15.04.10 15:12 #3
- Registriert seit
- Mar 2010
- Beiträge
- 8
Danke sowas ähnliches hab ich schon gefunden. mir gehts eher darum den namen einzugeben und ich krieg zurück ob er drin ist oder nicht. Also eher dass er selber vergleicht.. ich hab 100te von zip dateien manuel ist bisschen anstrengend auf dauer.
Das Problem beim Vergleich ist auch das in der zipdatei der name mit pfad steht. also muss ich glaub ich beim suchen auch den pfad eingeben oder mit hilfe von contain es machen. ist net so leicht
-
Du kannst ja den Code oben trotzdem übernehmen. theEntry.name hat ja den Namen des Items.
Über string.LastIndexOf kommst du an den letzten \-separator im Pfad und kannst dann vergleichen.
-
15.04.10 15:24 #5
- Registriert seit
- Aug 2001
- Ort
- Österreich, Stmk, Graz
- Beiträge
- 2.783
Sollte dann doch kein Problem sein? Du kennst den Dateinamen, du weisst wie du die ganzen Einträge in einer ZipDatei durchlaufen kannst, mehr brauchst doch nicht?
Hier mal der entsprechende Teil abgeändert:
Code csharp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
string filename = "test.txt"; using (ZipInputStream s = new ZipInputStream(File.OpenRead(args[0]))) { ZipEntry theEntry; while ((theEntry = s.GetNextEntry()) != null) { if ( theEntry.IsFile && System.IO.Path.GetFilenNme(theEntry.Name) == filename ) { Console.WriteLine("Found!"); break; } } // Close can be ommitted as the using statement will do it automatically // but leaving it here reminds you that is should be done. s.Close(); }
With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
Aaron Satie
Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
Captain Jean-Luc Picard, Stardate ~41294.5
Tutorials.de chattet. Hier gibts auch .net Support ^^
Klickt auf chattet und nutzt den Webchat, oder verbindet euch zu irc.tutorials.de - Channel #Tutorials.de
(moo)blog furred.net // SiteInfo für WP7 // Pastebin für WP7 // BlogEngine.net Extensions
-
16.04.10 09:55 #6
- Registriert seit
- Mar 2010
- Beiträge
- 8
Vielen Dank, hab jedoch noch ein kleines Problem.
Im Unternehmen nutzen wir nur ionic.zip.
hab dazu nix gefunden weiss also nicht ob es mit dieser bib auch klappen würde
-
Ja, das müsste auch klappen, da ändern sich halt einfach die Namen der Funktionen, das grobe Vorgehen und die Namespaces, aber das Prinzip dürfte gleich sein.
-
19.04.10 09:56 #8
- Registriert seit
- Mar 2010
- Beiträge
- 8
Ja hast recht, das müsste klappen. Ich suche grade wie die Funktionen bei ionic heissen müssen. Ist nicht so leicht da was zu finden

ich find einfach nichts dazu, ist echt zum verzweifelnGeändert von Perserhood (19.04.10 um 13:13 Uhr)
-
22.04.10 12:51 #9
- Registriert seit
- Mar 2010
- Beiträge
- 8
eine doofe Frage. Aber wo genau müsste ich denn im Code den Namen des Zipfiles schreiben?
-
na dawo auf gleichheit geprüft wird.
Ähnliche Themen
-
Problem bei Suche im Lucene-Index (nach Dateinamen suchen)
Von Kryptaesthesie im Forum JavaAntworten: 8Letzter Beitrag: 02.01.09, 19:17 -
Ist Zippen mit java.util.zip wie zippen mit Zipprogrammen
Von Java? im Forum JavaAntworten: 1Letzter Beitrag: 01.02.08, 11:38 -
Nach Zippen sind XML-Dateien Müll
Von Java? im Forum JavaAntworten: 2Letzter Beitrag: 01.02.08, 09:02 -
Sonderzeichen in Dateinamen beim zippen
Von jean luc im Forum JavaAntworten: 1Letzter Beitrag: 30.10.07, 12:08 -
Suchen/ Ersetzen von Dateinamen W2K
Von zylon im Forum Microsoft WindowsAntworten: 3Letzter Beitrag: 14.02.04, 05:34





Zitieren

Login





