Gibt es eine Software zum Überprüfen von Dateien, die sich mit tiefen Pfaden befasst?

893
Mark Booth

Ich habe nach einer Software gesucht, die die Prüfsumme prüft und NTFS-Volumes mit tiefen Pfaden unter Windows prüft / vergleicht und bei jedem, den ich ausprobiert habe, fehlschlägt. Ich habe sogar versucht, mein eigenes Python-Skript zu schreiben, und habe die gleichen Probleme.

Die Probleme beginnen, wenn Dateien mit Pfaden enden, die mehr als 256 Zeichen umfassen. Dies ist auf dem primären Laufwerk schon schlimm genug, aber sobald diese Dateien gesichert wurden und noch tiefer im Backup-Dateisystem liegen, wird es noch schlimmer. Zum Beispiel werden mein Python-Programm ExactFile ( hier vorgeschlagen ), md5deep und HashMyFiles alle glücklich Hashes

D:\My Music\CDs\Bach, Johann Sebastian\The Art of Fuge _ Musical Offering (Sir Neville Marriner)\Bach, Johann Sebastian+The Art Of Fuge _ Musical Offering (Sir Neville Marriner, CD 1)+09+Contrapunctus 7, A 4, Per Augmentationem Et Diminutionem.mp3 

da es nur 247 Zeichen hat, aber wenn es gegen die Sicherung überprüft wird, kann keines dieser Programme die Datei öffnen:

W:\WD SmartWare.swstor\XYZZY\Volume.1234567890abcdef1234567890abcdef0123\My Music\CDs\Bach, Johann Sebastian\The Art of Fuge _ Musical Offering (Sir Neville Marriner)\Bach, Johann Sebastian+The Art Of Fuge _ Musical Offering (Sir Neville Marriner, CD 1)+09+Contrapunctus 7, A 4, Per Augmentationem Et Diminutionem.mp3 

Der vollständige Pfad umfasst jetzt 317 Zeichen.

Microsofts fciv stürzt sogar ab, wenn es um so lange Dateipfade geht.

Dies macht es insgesamt sehr schwierig, zu überprüfen, ob die Sicherungen erfolgreich waren.

Ich bin mir sicher, dass ich nicht die einzige Person sein kann, die Hashes von Dateien in tiefen Verzeichnisstrukturen berechnen, überprüfen und vergleichen muss. Es scheint verrückt zu sein, dass NTFS Dateipfade mit einer Länge von bis zu 32 KB unterstützen kann, aber so viele Dienstprogramme, die diese Dateisysteme überwachen möchten, scheinen mit solchen gültigen Dateipfaden nicht fertig zu werden.

Kann jemand überprüfen, ob es Tools gibt, die tatsächlich Hashing unterstützen, Dateihashes von Dateien unter Windows mit langen Pfaden überprüfen und vergleichen?

4
Ich kenne keine Werkzeuge, aber zwei Umgehungsmöglichkeiten: 1) Verwenden Sie den guten, altmodischen `subst'-Befehl, um die Pfade zu verkürzen. Hässlich, aber sollte funktionieren. 2) Sie können die Windows-API, die Sie auf 260 Zeichen beschränkt, umgehen, indem Sie ein Präfix ["\?" Hinzufügen] (http://superuser.com/questions/471794/is-there-a-successor-to-ntfs). . Wenn Sie Werkzeuge finden, die dies unterstützen, sollten sie bis zu 32.000 Zeichen gut funktionieren. Hennes vor 10 Jahren 0
Danke @Hennes, `subst` ist wirklich keine praktikable Option, und ich habe versucht, die '\\? \' - Korrektur in mehreren dieser Softwarekomponenten durchzuführen, und im günstigsten Fall machte es keinen Unterschied und im schlimmsten Fall machten sie noch weniger Dateien. In meinem Python-Programm werden lediglich die Fehler von [WinError 3] geändert. Das System kann den angegebenen Pfad nicht finden in [WinError 206] Der Dateiname oder die Erweiterung ist zu lang. Aber das ist wirklich eine Frage. * 8 '( Mark Booth vor 10 Jahren 0
cygwin + find + md5sum + bash kleben sollte den trick ausführen. Wenn das nicht funktioniert, wenden Sie sich an die reale Sache: linux + find + md5sum + bash-kleben artistoex vor 10 Jahren 0
@MarkBooth: I have some old, klutzy C code I can give you which does MD5 checksums of deep paths. It probably isn't suitable as-is to your needs but could be adapted. Email me if interested. Harry Johnston vor 10 Jahren 0

2 Antworten auf die Frage

1
Martin

7zip 9.25 alpha kann CRC-32, CRC-64, SHA-256 und SHA-1 berechnen und unterstützt lange Dateipfade.

Ich kann keinen Weg finden, wie 7-zip die Prüfsummen berechnen kann, ohne ein Archiv zu erstellen. Könnten Sie ein Beispiel geben, was Sie meinen? Mark Booth vor 10 Jahren 0
@ MarkBooth: Ich habe versucht 9.30 Alpha: `7z h *` oder `7z h -mm = sha1 -r *`. Dadurch wird kein Archiv erstellt. Ich hoffe, ich habe Sie nicht falsch verstanden und entschuldigt meine späte Antwort. Martin vor 10 Jahren 0
Mindestens 7z 16.04 verwendet die Option -scrc, um eine der verfügbaren Hash-Funktionen festzulegen (`CRC32`,` CRC64`, `SHA1`,` SHA256`). ZB `7z h -scrcSHA1 -r Ordner> report.txt`. A-IV vor 7 Jahren 0
0
Martin

Total Commander kann lange Dateipfade verarbeiten (und warnt sogar vor ihnen). Es ist Shareware.

Es können MD5- und SHA1-Prüfsummen erstellt werden. Es schreibt die Summen in Dateien, alle Summen in eine Datei oder für jede Datei eine Summendatei. Ich weiß nicht, ob es in Batch-Dateien usw. verwendet werden kann, um automatisch Prüfsummen zu generieren.

Darüber hinaus können Verzeichnisse und vollständige Verzeichnisstrukturen einschließlich jedes Bits in jeder Datei verglichen werden, und ich denke, dass diese Funktion für Sie interessant sein kann.