Bonjour,
Inutile de prendre un rouleau compresseur pour écraser une mouche, lister les fichiers pour savoir si il existe des fichiers relève de la consommation volontaire de ressources pour pas grand chose ^^
Voici une fonction toute simple qui devrait faire ce que tu demandes :
Code : Tout sélectionner
Func emptyFolder($folder)
Local $result, $empty
If FileExists($folder&"\") = 0 Then
SetError(1) ; Folder not found
Else
$result = FileFindFirstFile($folder&"\"&"*")
$empty = ($result = -1 Or @error)
If $result <> -1 Then FileClose($result)
Return $empty
EndIf
EndFunc
Succès : Retourne True si le répertoire est vide, False sinon
Echec : Met @error à 1 si le répertoire n'existe pas
Remarques : Le nom du dossier ne doit pas contenir de backslash final - exemple : "C:\Test" et non pas "C:\Test\"
A bientôt !
PS : Dans ton cas, tu veux savoir si le dossier contient au moins un fichier. Soit tu fais un
Not emptyFolder($folder) dans le reste du script, soit tu changes le nom de la fonction et le
Return [...] en
Return Not [...]. La seconde solution est plus logique car dans le cas de la première avec d'une erreur, tu aurais le flag @error à 1 et pourtant un résultat à True (qui induirait
que le dossier n'existe pas et qu'il contient des fichiers, une erreur d'algo à la Microsoft Office quoi, genre "Erreur : Aucune erreur détectée" ^^).
EDIT: Modification effectue pour fermer le handle avant de retourner le résultat.