Anzahl der Dateien in einem Ordner bestimmen

  • Ich habe letztens eine Möglichkeit gesucht die Anzahl der Dateien in einem Ordner möglichst schnell zu bestimmen. _FileListToArray war zu langsam, da es ja auch die Namen der Dateien bestimmt und zurückgibt, welche ich nicht gebraucht habe. Nach ein wenig Googeln bin ich dann auf diese Methode mit dem FileSystemObject gestoßen. Ich hab es noch für AutoIt angepasst und eine Funktion daraus gemacht. Ich hoffe ihr könnt es gebrauchen und falls es das in ähnlicher Form schon geben sollte (oder sogar als interne Funktion) wusste ich nichts davon. ;)

    _FolderGetFilesCount
    [autoit]

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _FolderGetFilesCount
    ; Description ...: Gibt die Anzahl der Dateien im gewünschten Verzeichnis zurück. Unterordner werden nicht berücksichtigt.
    ; Syntax.........: _FolderGetFilesCount($sPath)
    ; Parameters ....: $sPath - Verzeichnispfad.
    ; Return values .: - Erfolg: Anzahl der Dateien.
    ; - Fehler: -1 & @error
    ; - @error: 0 = Kein Fehler.
    ; Author ........: name22 (http://www.autoit.de)
    ; Remarks .......: -
    ; ===============================================================================================================================

    [/autoit] [autoit][/autoit] [autoit]

    Func _FolderGetFilesCount($sPath)
    If DirGetSize($sPath) = -1 Then Return SetError(1, 0, -1)

    [/autoit] [autoit][/autoit] [autoit]

    $oFSO = ObjCreate("Scripting.FileSystemObject")
    $iFileCount = $oFSO.GetFolder($sPath).Files.Count

    [/autoit] [autoit][/autoit] [autoit]

    Return SetError(0, 0, $iFileCount)
    EndFunc

    [/autoit]