Also ich bekomme folgende Ausgabe mit dem nachfolgenden Code:
---------------------------
Info
---------------------------
Files Scanned: 34307
Api Found-Files:34307
Api-Version: 5.88sec.
PB Found-Files:34307
PB-Version: 5.86sec.
---------------------------
OK
---------------------------
Hier der kleine Testcode:
Code: Alles auswählen
Procedure FileExists(szFileName.s)
Protected Result.l, Find.WIN32_FIND_DATA
Result = FindFirstFile_(@szFileName,Find)
FindClose_(Result)
If Result <> #INVALID_HANDLE_VALUE
ProcedureReturn #True
EndIf
ProcedureReturn #False
EndProcedure
Global NewList FileOrNoFile.s()
Procedure.l SearchAll(Path.s)
Count.l = 0
Dir.l = ExamineDirectory(#PB_Any, Path, "")
If Dir
While NextDirectoryEntry(Dir)
Select DirectoryEntryType(Dir)
Case #PB_DirectoryEntry_Directory
If DirectoryEntryName(Dir) <> "." And DirectoryEntryName(Dir) <> ".."
Count + SearchAll(Path + DirectoryEntryName(Dir) + "\")
EndIf
Case #PB_DirectoryEntry_File
;correct File
AddElement(FileOrNoFile())
FileOrNoFile() = Path + DirectoryEntryName(Dir)
Count + 1
;create a random Filename (i guess it won't exist)
AddElement(FileOrNoFile())
a$ = ""
For j = 1 To 5
a$ + Chr(Random(25) + 65)
Next j
FileOrNoFile() = Path + a$ + ".txt"
EndSelect
Wend
FinishDirectory(Dir)
EndIf
ProcedureReturn Count
EndProcedure
Count = SearchAll("C:\")
S1 = ElapsedMilliseconds()
D1 = 0
ForEach FileOrNoFile()
If FileExists(FileOrNoFile())
D1 + 1
EndIf
Next
S1 = ElapsedMilliseconds() - S1
S2 = ElapsedMilliseconds()
D2 = 0
ForEach FileOrNoFile()
If FileSize(FileOrNoFile()) > -1
D2 + 1
EndIf
Next
S2 = ElapsedMilliseconds() - S2
MessageRequester("Info", "Files Scanned: " + Str(Count) + #LF$ + "Api Found-Files:" + Str(D1) + #LF$ + "Api-Version: " + StrF(S1 / 1000, 2) + "sec." + #LF$ + "PB Found-Files:" + Str(D2) + #LF$ + "PB-Version: " + StrF(S2 / 1000, 2) + "sec.")
Da scheints also nicht wirklich Geschwindigkeitsunterschiede zu geben.
Hätte mich auch gewundert...