Womit umfangreiche Dateilisten erstellen?

Kamikatze

Captain
Registriert
Okt. 2004
Beiträge
3.703
Hallo!

Ich suche nach einer guten und kostenlosen Möglichkeit, große Dateilisten (Dateiverzeichnisse ganzer Laufwerke) zu erstellen.

Demzufolge muss das Programm auch mit Hunderttausenden von Dateien umgehen können. Es wäre dann natürlich ideal, wenn diese in einer Form gespeichert/dargestellt werden könnten, die einen handlichen/übersichtlichen Umgang mit solch großen Datenmengen erlaubt (navigieren können wie in einem Verzeichnis-Baum wäre toll). Auch die paar wichtigsten Attribute (Datum, Größe,...) sollten dabei sein.

Ich habe es jetzt mal mit DirPrintOK probiert, allerdings scheint das Programm nur das exportieren zu können, was aktuell auch im Programm angezeigt wird... das muss erst einmal geladen werden und das ganze Laufwerk auf einmal ist da wohl zu viel fürs Programm. Außerdem werden Systemdateien nicht angezeigt. Größeneinheit auch nicht konfigurierbar. Export zumindest als CSV, XLS, TXT und HTML möglich, damit kann man evtl. weiterarbeiten.

Vorschläge? :)
 
Zuletzt bearbeitet:
Ich benutze Filelist Creator.
http://www.freewarepage.de/Freeware/2892.shtml
Primitiv, aber dies kann einiges von deinen Forderungen. Ich habe damit auch schon viele HDDs vollständig indiziert.

Das Handling mit den Textdateien ist etwas umständlich.
Wenn du diese weiter formatieren willst, müsstest Du Dir dafür ein passendes Skript schreiben.
 
Hi

Ich hätte eine Frage aus reinem Interesse: Für was braucht man sowas, kann mir nämlich gerade keinen vernünftigen Einsatzzweck herleiten!

(keine Verarsche, interessiert mich wirklich, weil ich noch nie davon gehört hab)

lg
 
Hallo,

der Directory Lister wäre dann wohl etwas für Dich: http://www.krksoft.com/index.php
Ich habe noch eine ältere Version im Einsatz.

@sergeant12;

Du kannst Dir z.B. einen Überblick über Deine vorhandenen Dateien oder den Inhalt der Ordner verschaffen.
 

Anhänge

  • image1.jpg
    image1.jpg
    150,4 KB · Aufrufe: 504
  • image2.jpg
    image2.jpg
    120,5 KB · Aufrufe: 449
  • image3.jpg
    image3.jpg
    131,5 KB · Aufrufe: 395
Zuletzt bearbeitet: (Grafiken hinzugefügt.)
Ich hab da mal ein kleines Prog geschrieben, vllt. hilft es dir ja.
Du kannst damit einiges an Dateien einlesen. (getestet mit über 500.000 Dateien)
Du kannst damit auch Dateilisten erstellen. Wie die Dateiliste aussieht, kannst du selbst formatieren.
Es muss nicht installiert werden, einfach entpacken und fertig.

Du benötigst dafür das .NET Framework 3.5.

Habs mal angehängt, wenn du ne Funktion nicht kapierst, oder ein Feature vermisst, dann schreib mich ruhig an, wenn ich Lust und Zeit hab, dann implementier ich es vllt. ;)
 

Anhänge

  • FileListBuilder.rar
    76,7 KB · Aufrufe: 513
@seargent12:
Nur einige Anwendungsbeispiele:
Server-Cluster den Überblick bekommen.
Externe HDDs/ DVD etc. zu katalogisieren.
Intrusion Detection System (Zugriff auf Ordner/Datei durch Unbefugte durch vorher/nachher Vergleich) und Antivirenabsicherung, in dem man sich seine Dateien mit allen Hashwerten listet.
Ich guck mir erst einmal Grantigs Programm an.
 
Hallo,

ich habe es mir mal kurz angeschaut. Auf den ersten Blick macht es einen guten Eindruck.
 
Grantigs Tool ist auch nicht so schlecht, kommt natürlich nicht gegen Directory Lister Pro an.

Featurerequest: Hashwerttabelle zu jeder Datei ausrechnen lassen.
Das ist ein Feature, was ich auch bei kommerzieller Software dringlichst bräuchte und vermisse.
(p.s. Directory Lister Pro hat diese Funktion)
 
Zuletzt bearbeitet:
Hallo,

ja, ich finde Directory Lister Pro ist das umfangreichste Programm dieser Art.
Aber eben nicht umsonst. Für intensiver Nutzer aber den Preis absolut wert.
 
Schön dass euch mein Programm gefällt! :)

An Directory Lister Pro kommts natürlich nie im Leben ran, hab ja mein Tool eigentlich nur als Übung programmiert.

@ScoutX
Das Feature ist ne gute Idee und auch leicht zu implementieren.
Doch ein Problem dabei ist, dass das erstellen von Hashes bei großen Dateien ein bisschen Zeit in Anspruch nimmt, was sich bei vielen Dateien deutlich bemerkbar macht.

Deswegen hab ich mir gedacht, dass ich die Hashes erst erzeuge, wenn die Datei in der Liste ausgewählt wird. Sinnvoll?
Reichen MD5 und SHA-1 erstmal, oder benötigst du noch irgendeinen anderen Algorithmus?
 
SHA-1 und MD5 würden mir reichen.
Zur Hashwerterzeugung.
Eine Option Hashwerterzeugung aktivieren "ja/nein" würde mir näher kommen.
Ein Auswählen der Dateien kommt meinem Benutzerverhalten nicht entgegen :rolleyes:
Man könnte es natürlich auch nach dem Prinzip machen: Manuell per Haken anwählen
und einen Button "Hashwerte für alle Dateien erzeugen" hinzufügen und damit alle Haken automatisch setzen.
Somit wäre das Problem für mich und andere Nutzer aus der Welt.
 
Danke schon mal!

Das Problem ist halt, dass dann so eine riesige Datei mit hunderttausenden seriellen Einträgen nicht mehr wirklich überschaubar ist. Deshalb wäre es toll, wenn das Programm die Struktur speichern und gut präsentieren könnte (z.B. eben navigierbar) oder zumindest samt einiger wichtiger Infos so exportieren, dass man die Daten mit etwas Selbsterstelltem verwenden kann. Anscheinend wird es ohnehin darauf hinauslaufen.

So schlecht scheint DirPrintOK dann ja gar nicht zu sein, nur eben schlecht, dass alle Daten erst einmal komplett geladen werden müssen, anstatt einfach alles nacheinander durchzugehen und direkt in eine Datei zu speichern...

@ScoutX:
Leider zu einfach im Export.

@sergeant12:
Ich kann mir z.B. einen Index verschiedenster Datenträger anlegen und kann nach den Dateien suchen, ohne die Datenträger selbst durchsuchen oder gar bei mir haben zu müssen.

Ich möchte es allerdings als eine Art Backup nutzen - damit, falls irgendetwas passieren sollte, ich eine Liste der Dateien habe, die vorhanden sein sollten. Teilweise sind Daten selbst weniger wichtig als zu wissen, welche Daten denn überhaupt vorhanden sein sollten.

@Grantig:
Vielleicht gar nicht so schlecht, leere Ordner werden leider nicht berücksichtigt, weil es sich auf Dateien beschränkt. Durch den Format-String könnte man wohl wirklich einiges rausholen, nur die Doku dafür fehlt... ^^


Aber gibt es wirklich noch kein Programm, das sich auf die Speicherung von Dateistrukturen selbst beschränkt? Wie ein Packer, der die Daten weglässt oder ein Programm, mit dem man die MFT darstellen kann...

EDIT:
Der Kommandozeilenbefehl tree hat übrigens auch eine nette Darstellung, allerdings fehlen weitere Daten und zur automatisierten Weiterverarbeitung der Daten ist diese wohl ebenfalls nicht so gut geeignet. Außerdem werden sowohl versteckte, als auch Systemdateien komplett ignoriert...
 
Zuletzt bearbeitet:
@Kamikatze
Doku braucht man eigentlich nicht unbedingt.
Du kannst in die Formatstring Textbox rechtsklicken. Im Kontextmenü kannst du dann Variablen zum Formatstring hinzufügen. Die Vorschau zeigt dann das Endergebnis.
Das mit den Ordnern liese sich leicht ändern, aber imo macht das wenig Sinn in einer Dateiliste leere Ordner anzuzeigen.

Du suchst wohl eher ein Programm, dass die Ordnerstruktur besser heraushebt, da wäre wohl Directory Lister Pro wirklich die beste Wahl.
Es wäre zwar theoretisch möglich ein Treelistview in mein Programm zu implementieren, aber ich glaube dann gibts ein Performanceproblem bei vielen Dateien und außerdem wäre mir das auch zu viel Aufwand. :D

@ScoutX
Ich werd dann einfach ne ja/nein Option machen.
Andere Nutzer gibts nicht, ich benutz es nur ganz selten mal selbst, es war wirklich nur zur Übung gedacht. ;)
 
Zuletzt bearbeitet:
Ja, mir geht's eher um die wichtigsten Metadaten eines Dateisystems/Ordners.

Okay, das mit dem Rechtsklick war mir nicht klar. Dann ist es natürlich nicht notwendig. ;)

EDIT:
Ich "vermute" mal, dass es mit dem Feld "relativer Dateipfad" Probleme gibt... (bezieht sich nach Scannen von N: auch auf C: ?!)

Code:
See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentException: parsing "^[^\^?<>|/*"]*(|\\)C:)%%relativeFilepath(C:\\" - Too many )'s.
   at System.Text.RegularExpressions.RegexParser.ScanRegex()
   at System.Text.RegularExpressions.RegexParser.Parse(String re, RegexOptions op)
   at System.Text.RegularExpressions.Regex..ctor(String pattern, RegexOptions options, Boolean useCache)
   at System.Text.RegularExpressions.Regex..ctor(String pattern, RegexOptions options)
   at FileListBuilder.FileListBuilder.GetFormattedListItem(String formatString, OLVContent listItem, Boolean skipUnformatable)
   at FileListBuilder.FileListBuilder.GetFormattedListItem(String formatString, Int32 listItemIndex, Boolean skipUnformatable)
   at FileListBuilder.MainForm.UpdatePreview()
   at FileListBuilder.MainForm.tb_formatString_TextChanged(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnTextChanged(EventArgs e)
   at System.Windows.Forms.TextBoxBase.OnTextChanged(EventArgs e)
   at System.Windows.Forms.Control.set_Text(String value)
   at System.Windows.Forms.TextBoxBase.set_Text(String value)
   at System.Windows.Forms.TextBox.set_Text(String value)
   at FileListBuilder.MainForm.mi_relativeFilepath_Click(Object sender, EventArgs e)
   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
FileListBuilder
    Assembly Version: 1.5.2.35
    Win32 Version: 1.5.2.35
    CodeBase: file:///R:/FileListBuilder.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Core
    Assembly Version: 3.5.0.0
    Win32 Version: 3.5.30729.4926 built by: NetFXw7
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Core/3.5.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
 
Zuletzt bearbeitet:
@ScoutX
Hab die Hashes implementiert.
Neue Version im Anhang.

@Kamikatze
Es liegt am relativen Dateipfad.

Erstmal ne Erklärung zur Funktion, da dieses Feature nicht ganz trivial ist.

dem Feld %relativeFilePath("irgendein Verzeichnis oder Pfad"))% musst du einen Parameter übergeben.
Der standarmäßige Parameter ist C:, deswegen:
(bezieht sich nach Scannen von N: auch auf C: ?!)

Beispiel:
Dein Pfad heißt "D:\abcd\1234\firefox.exe"

Wenn du jetzt %relativeFilepath(D:)% schreibst, dann ist das Ergebnis "abcd\1234\firefox.exe".
D.h. der Pfad wird immer relativ zum als Parameter übergebenen Verzeichnis erstellt.

Noch ein Beispiel:
Man kann sowohl Pfade, als auch Verzeichnisnamen übergeben.

--> %relativeFilePath(D:\abcd)% und %relativeFilepath(abcd)% würden beide denselben Pfad zurückgeben, nämlich "1234\firefox.exe".


Bei der Umsetzung dieses Features benutze ich Regex und erzeuge das Regex Pattern dynamisch. Anscheinend ist dabei in deinem Fall was schief gegangen.
Leider kann ich den Fehler nicht reproduzieren.
Ich bräuchte zusätzlich zur Debugger Fehlermeldung noch den benutzten Formatstring und am besten den Dateipfad, bei dem der Fehler aufgetreten ist.


Edit:
Hatte nicht die neueste Version hochgeladen....jetzt passt alles
 

Anhänge

  • FileListBuilder_1.7.1.rar
    80,8 KB · Aufrufe: 344
Zuletzt bearbeitet:
Hallo,

Du bist wohl auf dem besten Weg, den Directory Lister Pro 2 zu erstellen.
Nur nennst Du ihn FileListBuilder. :D
 
Danke für die Blumen :)
Aber Directory Lister Pro ist schon ein anderes Kaliber als mein kleines Tool, da steht ja auch ne komplette Firma dahinter.
 
Hallo,

das schon, aber eine "komplette Firma" sagt nichts über die Leistungsfähigkeit der einzelnen Mitarbeiter aus.
Ich kenne "Ein-Mann-Betriebe", die mehr leisten, als so manche mittlere Faulpelz-Abteilung.

Und aus "Ein-Mann-Betrieben" sind schon internationale Unternehmen hervorgegangen. :D
 
@Grantig:
Danke für deine Mühen! :)

Ganz praktisch wäre noch, wenn der Pfad ohne Dateiname (also nur der Ordner, in dem sich die Datei befindet) und die Zeit der letzten Änderung auch noch als Felder verfügbar wären. Oder habe ich das nur übersehen?
 
Zuletzt bearbeitet:
Zurück
Oben