ich habe in einem Ordner knapp 8.000 .chk-Dateien liegen wegen einem Festplattencrash...
Die 8.000 Dateien jetzt im Hex-Editor öffnen und nachschauen was es ev. für eine Dateityp ist, macht natürlich viel Arbeit

Deshalb die Idee eines Tools: Es liest alle Dateien des Verzeichnisses nacheinander ein:
Code: Alles auswählen
Procedure.s ListFiles(directory.s , filename.s, extension.s , directoryid.l )
If Right(directory,1)<>"\"
directory+"\"
EndIf
If ExamineDirectory(directoryid,directory,"*.*")
dirid=NextDirectoryEntry(directoryid)
While dirid
dirtype = DirectoryEntryType(directoryid)
Select dirtype
Case #PB_DirectoryEntry_File
file.s=DirectoryEntryName(directoryid)
this_extension.s=LCase(GetExtensionPart(file))
this_filename.s=LCase(Left(file,Len(file)-Len(this_extension)))
If Len(this_extension)
this_filename=Left(this_filename,Len(this_filename)-1)
EndIf
If this_extension=extension Or extension="*"
If this_filename=filename Or filename="*"
file.s=directory+DirectoryEntryName(directoryid)
Debug file+":"
ReadFile(0, file)
header$=ReadString(0)
; CHECK
CloseFile(0)
EndIf
EndIf
Case #PB_DirectoryEntry_Directory
If DirectoryEntryName(directoryid)<>"." And DirectoryEntryName(directoryid)<>".."
ListFiles(directory+DirectoryEntryName(directoryid)+"\",filename,extension,directoryid+1)
EndIf
EndSelect
dirid=NextDirectoryEntry(directoryid)
Wend
EndIf
ProcedureReturn ""
EndProcedure
ListFiles("d:\FOUND.000\","*","chk",0)
Hat jemand so eine Vergleichsprozedur für binäre Inhalte oder sowas?
PHP-mäßig würde es so aussehen if(eregi("ID3",$header)){...}