Oben hab ich einen bösen Denkfehler drin, das funktioniert so nicht! Mal sehen wer es zuerst merkt...
Drives bekommt man evtl. so:
Delphi-Quellcode:
type
TDriveTypes = set of (dtUnknown, dtNoRoot, dtRemovable,
dtFixed, dtRemote, dtCDROM, dtRamdisk);
function GetDriveList(IncludeTypes : TDriveTypes): String;
var
c : Char;
begin
for c := 'A' to 'Z' do begin
case GetDriveType(PChar(c+':\')) of
DRIVE_NO_ROOT_DIR : if dtNoRoot in IncludeTypes then Result := Result + c;
DRIVE_REMOVABLE : if dtRemovable in IncludeTypes then Result := Result + c;
DRIVE_FIXED : if dtFixed in IncludeTypes then Result := Result + c;
DRIVE_REMOTE : if dtRemote in IncludeTypes then Result := Result + c;
DRIVE_CDROM : if dtCDROM in IncludeTypes then Result := Result + c;
DRIVE_RAMDISK : if dtRamdisk in IncludeTypes then Result := Result + c;
else
// DRIVE_UNKNOWN
if dtUnknown in IncludeTypes then Result := Result + c;
end;
end;
end;
€: meine Funktion oben geändert, da rekursive Suche ja kein gefiltertes Suchergebnis gebrauchen kann (findet sonst Unterordner nicht)
€2: Mein System hab' ich mal nach "readme.*" durchsucht. Total 1,25 Mio Dateien... beim ersten mal 2-3 Minuten, danach immer 5-10 Sekunden.