Bonjour;
J'ai un souci avec une utilisation de FileListToArrayEx
► Afficher le texte
Code : Tout sélectionner
#include <Date.au3>
#include <Array.au3>
#include <File.au3>
#include <..\#Include\_FileListToArrayEx.au3>
#include <..\#Include\RecFileListToArray.au3>
;~ **********************************************************************************
;~ Variables
;~ **********************************************************************************
$Dossier_a_scanner = "D:\Mes installs"
$type_fichier_a_scanner_et_a_log = "*"
$emplacement_fichier_txt_sauvegarde = "D:\Mes installs"
$Fichier_log = "D:\Mes installs\liste4.txt"
;~ **********************************************************************************
;~ **********************************************************************************
;~ Programme principal
;~ **********************************************************************************
ScanFolder_1($Dossier_a_scanner)
ScanFolder_2($Dossier_a_scanner)
ScanFolder_3($Dossier_a_scanner)
ScanFolder_4($Dossier_a_scanner, $Fichier_log)
;~ **********************************************************************************
;~ **********************************************************************************
;~ Functions
;~ **********************************************************************************
func ScanFolder_1($Dossier_a_scanner)
;~ **********************************************************************************
;~ Scan les fichiers du dossier de la semaine et création du fichier de log.
;~ **********************************************************************************
$Chemin = $Dossier_a_scanner
$liste_fichiers1 = _FileListToArrayEx( $Chemin, $type_fichier_a_scanner_et_a_log, 1, 1)
_FileWriteFromArray($emplacement_fichier_txt_sauvegarde &"\"& "1_liste fichier avec chemin relatif.txt", $liste_fichiers1, 1)
EndFunc
;~ **********************************************************************************
func ScanFolder_2($Dossier_a_scanner)
;~ **********************************************************************************
;~ Scan les fichiers du dossier de la semaine et création du fichier de log.
;~ **********************************************************************************
$Chemin = $Dossier_a_scanner
;$liste_fichiers2 = _FileListToArrayEx( $Chemin, $type_fichier_a_scanner_et_a_log, 1, 1)
$liste_fichiers2 = _FileListToArray( $Chemin, $type_fichier_a_scanner_et_a_log, 1)
;_ArrayDisplay($liste_fichiers2, "Liste fichiers sans dossier")
_FileWriteFromArray($emplacement_fichier_txt_sauvegarde &"\"& "2_liste fichiers.txt", $liste_fichiers2, 1)
EndFunc
func ScanFolder_3($Dossier_a_scanner)
;~ **********************************************************************************
;~ Scan les fichiers du dossier de la semaine et création du fichier de log.
;~ **********************************************************************************
$Chemin = $Dossier_a_scanner
$liste_fichiers3 = _FileListToArrayEx( $Chemin, $type_fichier_a_scanner_et_a_log, 2, 1)
_FileWriteFromArray($emplacement_fichier_txt_sauvegarde &"\"& "3_liste dossier seulement.txt", $liste_fichiers3, 1)
EndFunc
; Donnez le chemin du dossier à scanner, et le nom du fichier liste
Func ScanFolder_4($sDir, $sListFile = Default)
If $sListFile = Default Then $sListFile = @ScriptDir & "\list.txt"
; ---
Local $aList = _RecFileListToArray($sDir, "*", 1, 1, 0, 2)
; ---
Local $hF = FileOpen($sListFile, 2)
For $i = 1 To $aList[0]
FileWrite($hF, $aList[$i] & @CRLF)
Next
FileWrite($hF, @CRLF)
For $i = 1 To $aList[0]
FileWrite($hF, _File_GetName($aList[$i]) & @CRLF)
Next
; ---
FileClose($hF)
EndFunc
; Transforme un chemin de fichier en nom de fichier
Func _File_GetName($sPath)
Return StringTrimLeft($sPath, StringInStr($sPath, "\", 1, -1))
EndFunc
Je bloque sur ScanFolder_2
Je veux n'avoir dans cette liste que les nom des fichiers et rien que ça.
Si je joue avec les flags je n'y arrive pas car comme j'utilise le flag pour chercher dans les sous dossiers, ce qui est retourné c'est sous_dossier\nom_fichier alors que moi je ne veux que le nom_fichier.
Ce que je cherche à faire est parfaitement réalisé dans la fonction ScanFolder_4, mais elle ne viens pas de moi et donc j'essaye de ré-écrire une partie du code en quelque chose de compréhensible pour mon niveau (Donc via _FileListToArrayEx et _FileWriteFromArray)
Pourriez vous me dire ce que je rate pour que ma fonction me retourne ce que j'attends.
J'ai tenté de faire un découpage du texte en utilisant "\" comme délimiteur mais ça ne m'avance pas plus car je ne sais pas à quel endroit dans le tableau va être la chaine que je dois ignorer (celle du nom du sous dossier voir du sous/sous dossier - Problème identique que la fonction 3 qui liste les dossiers, si il y a un sous-sous dossier ça m'affiche le sous dossier, puis le sous-sous dossier avec le chemin sous_dossier\sous_sous_dossier. Effectivement c'est une bonne chose, mais si on ne veux avoir que le nom des derniers dossier de la chaine, ça ne fonctionne pas)
Je vous met une petite demande d'information en spoil afin de m'aider à mieux comprendre la fonction ScanFolder_4
► Afficher le texte
Qu'est-ce que $sListFile = Default veux dire ? que ce soit dans l'argument de la fonction ou dans la fonction elle même ?
Je ne comprends pas la fonction "_File_GetName"
Quel est l'utilité de mettre -1 dans les paramètres ? A quoi cela correspond ?