[R] Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Boulanza
Niveau 7
Niveau 7
Messages : 314
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

[R] Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.

#1

Message par Boulanza » dim. 13 mai 2018 17:04

Bonjour,
Récupérer puis supprimer une liste de fichiers qui ont été installé (date du jour) sur clé USB ou sur les disques (partitions) liés à mon ordinateurs en mon absence notamment les fichiers .doc. Le code suivant récupérer la liste des fichiers .doc qui se trouve sur le disque c:\.
Merci pour votre aide.
Cordialement.
;Réalisé par Tlem » dim. 20 nov. 2011 22:52
;Lien d'origine : https://www.autoitscript.fr/forum/viewtopic.php?t=479
#include<Array.au3>
#include"_FileListToArrayEx.au3"
$ar_Array = _FileListToArrayEx ("c:\", "*.doc", 1, 2)
_ArrayDisplay($ar_Array, "Liste fichier")  ; Ceci est facultatif, c'est juste pour afficher la liste des fichiers.
Modifié en dernier par Boulanza le dim. 20 mai 2018 19:24, modifié 7 fois.

Boulanza
Niveau 7
Niveau 7
Messages : 314
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

Re: [..] Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.

#2

Message par Boulanza » dim. 13 mai 2018 20:51

Bonsoir,
Le code ci-dessous récupère l'historique des fichiers .doc sur tous les supports disques installés sur la machine. Je bloque pour ajouter la la date du jour au scripte ci-dessous afin que l'historique des fichiers .doc concerne uniquement la date du jour de lancement du dit script.
Votre aide svp
Cordialement.
#include <AutoItConstants.au3>
#include <MsgBoxConstants.au3>
#include"_FileListToArrayEx.au3"
#include <Date.au3>
#include <Array.au3>

Local $aArray = DriveGetDrive($DT_ALL)
If @error Then
; An error occurred when retrieving the drives.
MsgBox($MB_SYSTEMMODAL, "", "It appears an error occurred.")
Else
For $i = 1 To $aArray[0]
; Show all the drives found and convert the drive letter to uppercase.
;MsgBox($MB_SYSTEMMODAL, "", "Drive " & $i & "/" & $aArray[0] & ":" & @CRLF & StringUpper($aArray[$i]))

;$ar_Array = _FileListToArrayEx ($aArray[$i], "*.iso"&_NowDate(), 1, 2)

$ar_Array = _FileListToArrayEx ($aArray[$i], "*.doc", 1, 2)
_ArrayDisplay($ar_Array, "Liste fichier") ; Ceci est facultatif, c'est juste pour afficher la liste des fichiers.

Next
EndIf
Modifié en dernier par Boulanza le mar. 15 mai 2018 17:27, modifié 1 fois.

Boulanza
Niveau 7
Niveau 7
Messages : 314
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

Re: [..] Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.

#3

Message par Boulanza » mar. 15 mai 2018 17:23

Changement de titre: Récupérer l'historique d'utilisation d'un ordinateur
par : Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.
Modifié en dernier par Boulanza le dim. 20 mai 2018 19:25, modifié 1 fois.

Avatar du membre
walkson
Modérateur
Modérateur
Messages : 535
Enregistré le : ven. 12 août 2011 18:49
Localisation : Essonne
Status : Hors ligne

Re: [..] Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.

#4

Message par walkson » mar. 15 mai 2018 19:57

Bonjour,
Pas sûr d'avoir tout compris mais je m'y risque :mrgreen:
j'utilise _FileListToArrayRec() qui est une fonction similaire à celle de Tlem
#include <File.au3>
#include <Array.au3>
Local $array_datejour[0]
$array = _FileListToArrayRec (@UserProfileDir,"*.doc", $FLTAR_FILES ,$FLTAR_RECUR,$FLTAR_NOSORT,$FLTAR_FULLPATH );le file, récursive, pas de trie, chemin complet
_ArrayDisplay($array)
_ArrayColInsert($array,1)
For $i = 1 To $array[0][0]
        $info = StringLeft(FileGetTime($array[$i][0],0,1),8) ;return a string YYYYMMDD supprimé (HHMMSS)
        $array[$i][1] = $info
        ;========== autre possibilité =====================
        If $info = @YEAR & @MON & @MDAY Then
                _ArrayAdd($array_datejour,$array[$i][0])
        EndIf

Next

_ArrayDisplay($array,"tous les doc et dates")
_ArrayDisplay($array_datejour,"date du jour")
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi

Boulanza
Niveau 7
Niveau 7
Messages : 314
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

Re: [..] Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.

#5

Message par Boulanza » mar. 15 mai 2018 21:38

Bonsoir,
merci infiniment Monsieur walkson de votre aide.
Votre script est bien pour "tous les doc et dates : _ArrayDisplay($array,"tous les doc et dates")
Mais il ne fonction pas pour date du jour : _ArrayDisplay($array_datejour,"date du jour")
J'ai cherché l’erreur mais en vain.
SVP: Si vous pouvez aussi ajouter la suppression de tous les fichier .doc datés du jour.
Cordialement

Avatar du membre
walkson
Modérateur
Modérateur
Messages : 535
Enregistré le : ven. 12 août 2011 18:49
Localisation : Essonne
Status : Hors ligne

Re: [..] Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.

#6

Message par walkson » mar. 15 mai 2018 22:48

#include <File.au3>
#include <Array.au3>
Local $array_datejour[0]
$array = _FileListToArrayRec ("C:\","*.doc", $FLTAR_FILES ,$FLTAR_RECUR,$FLTAR_NOSORT,$FLTAR_FULLPATH );le file, récursive, pas de trie, chemin complet
_ArrayDisplay($array)
For $i = 1 To $array[0]
        $info = StringLeft(FileGetTime($array[$i],0,1),8) ;return a string YYYYMMDD supprimé (HHMMSS)
        If $info = @YEAR & @MON & @MDAY Then
                $rep = MsgBox(4,"Supprimer",$array[$i])
                If $rep = 6 Then
                        ;FileDelete($array[$i])
                        FileRecycle ($array[$i])
                EndIf
        EndIf

Next
Ce code supprime bien les fichiers modifiés à la date du jour
pour ceux créés à la date du jour, il faut $info = StringLeft(FileGetTime($array[$i],1,1),8)
Une remarque, Windows affiche parfois des fichiers modifiés antérieur à la date de création (fichiers déplacés ? autres ?)
J'ai mis au choix supprimer ou poubelle par sécurité, à vous de voir...
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi

Boulanza
Niveau 7
Niveau 7
Messages : 314
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

Re: [..] Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.

#7

Message par Boulanza » mar. 15 mai 2018 23:17

Merci infiniment pour votre aimable aide.
Votre modification marche parfaitement.
J'aurais voulu que $array = _FileListToArrayRec ("C:\","*.iso", $FLTAR_FILES ,$FLTAR_RECUR,$FLTAR_NOSORT,$FLTAR_FULLPATH )
fonctionne plutôt avec la fonction "DriveGetDrive($DT_ALL)"

Boulanza
Niveau 7
Niveau 7
Messages : 314
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

Re: [..] Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.

#8

Message par Boulanza » mer. 16 mai 2018 09:52

Bonjour,
$info = StringLeft(FileGetTime($array[$i],1,1),8)
$info = StringLeft(FileGetTime($array^ ERROR
SVP: Elle est ou mon erreur sur le code ci-dessous.
#include <File.au3>
#include <Array.au3>
Local $array_datejour[0]
Local $array = DriveGetDrive($DT_ALL)
For $i = 1 To $array[0]
_ArrayDisplay($array)
$array = _FileListToArrayRec ($array[$i],"*.doc", $FLTAR_FILES ,$FLTAR_RECUR,$FLTAR_NOSORT,$FLTAR_FULLPATH );le file, récursive, pas de trie, chemin complet
       $info = StringLeft(FileGetTime($array[$i],1,1),8) ;return a string YYYYMMDD supprimé (HHMMSS
           ;$info = StringLeft(FileGetTime($array[$i],0,1),8) ;return a string YYYYMMDD supprimé (HHMMSS)
        If $info = @YEAR & @MON & @MDAY Then
                $rep = MsgBox(4,"Supprimer",$array[$i])
                If $rep = 6 Then
                        ;FileDelete($array[$i])
                        ;FileRecycle ($array[$i])
                EndIf
        EndIf
Next

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5701
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.

#9

Message par mikell » mer. 16 mai 2018 20:49

Est-ce que par un malencontreux hasard l'un des disques ne contiendrait pas de fichier .doc ?
Image
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11252
Enregistré le : ven. 20 juil. 2007 20:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.

#10

Message par Tlem » mer. 16 mai 2018 22:41

Bonsoir tout le monde.
walkson a écrit :
mar. 15 mai 2018 19:57
...fonction similaire à celle de Tlem
Pour information, aucune des fonctions de recherche de fichier n'a été écrite par moi. Je n'ai fait que regrouper dans ce sujet les fonctions que j'ai pu trouver au fil de mes recherches et tests.

D'ailleurs, il serait temps que je mette à jour pour indiquer _FileListToArrayRec. :mrgreen:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".

Boulanza
Niveau 7
Niveau 7
Messages : 314
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

Re: [..] Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.

#11

Message par Boulanza » jeu. 17 mai 2018 09:50

Bonjour Tlem,
On ne peut pas supprimer .doc date du jour en utilisant la fonction ' _FileListToArrayEx' du script suivant:
Cordialement.
#include <AutoItConstants.au3>
#include <MsgBoxConstants.au3>
#include"_FileListToArrayEx.au3"
#include <Date.au3>
#include <Array.au3>

Local $aArray = DriveGetDrive($DT_ALL)
If @error Then
; An error occurred when retrieving the drives.
MsgBox($MB_SYSTEMMODAL, "", "It appears an error occurred.")

Else
For $i = 1 To $aArray[0]
; Show all the drives found and convert the drive letter to uppercase.
;MsgBox($MB_SYSTEMMODAL, "", "Drive " & $i & "/" & $aArray[0] & ":" & @CRLF & StringUpper($aArray[$i]))

$ar_Array = _FileListToArrayEx ($aArray[$i], "*.doc", 1, 2)
_ArrayDisplay($ar_Array, "Liste fichier") ; Ceci est facultatif, c'est juste pour afficher la liste des fichiers.

Next
EndIf

Avatar du membre
walkson
Modérateur
Modérateur
Messages : 535
Enregistré le : ven. 12 août 2011 18:49
Localisation : Essonne
Status : Hors ligne

Re: [..] Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.

#12

Message par walkson » jeu. 17 mai 2018 09:59

Bonjour,
Suite à votre message, Mikell vous a répondu.
Ce qui nous donne:
#include <File.au3>
#include <Array.au3>

Local $arrayDrive = DriveGetDrive("All")
_ArrayDisplay($arrayDrive)
For $y = 1 To $arrayDrive[0] ;boucle sur drive
$Drive = StringUpper($arrayDrive[$y]) & "\" ; => C:\ à la place de c:
ToolTip("Recherche sur " & $Drive, 100,200)
$array = _FileListToArrayRec ($Drive,"*.doc", $FLTAR_FILES ,$FLTAR_RECUR,$FLTAR_NOSORT,$FLTAR_FULLPATH );le file, récursive, pas de trie, chemin complet
    If IsArray($array) Then
                _ArrayDisplay($array)
                For $i = 1 To $array[0] ;boucle sur fichier Doc
                   $info = StringLeft(FileGetTime($array[$i],1,1),8)
                        $info_1 = StringLeft(FileGetTime($array[$i],0,1),8)
                        If $info = @YEAR & @MON & @MDAY Or $info_1 = @YEAR & @MON & @MDAY Then ;si créé ou modifié
                                        $rep = MsgBox(4,"Supprimer",$array[$i])
                                        If $rep = 6 Then
                                                        ;FileDelete($array[$i])
                                                        ;FileRecycle ($array[$i])
                                        EndIf
                        EndIf
                Next
        Else
                MsgBox(0,$Drive,"rien de trouvé")
        EndIf
ToolTip("")
Next
PS: merci d'utiliser la messagerie pour des messages purement personnels
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi

Boulanza
Niveau 7
Niveau 7
Messages : 314
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

Re: [..] Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.

#13

Message par Boulanza » jeu. 17 mai 2018 10:32

Bonjour walkson,
Merci infiniment pour votre aide: Exilent script. Je remercie également Monsieur Tlem pour ses conseilles.
Cordialement.

Boulanza
Niveau 7
Niveau 7
Messages : 314
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

Re: [..] Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.

#14

Message par Boulanza » jeu. 17 mai 2018 13:09

Bonjour,
Je reviens vers vous, pour résoudre un problème qui bloque la suppression des fichiers .doc date du jour lorsque ces fichiers sont cachés, La fonction "FileSetAttrib($Drive& "\*.iso", "-A-H-R-S", 1)" ne marche pas correctement suite à l'emplacement choisie dans le script.
Je souhaite aussi arrêter l'affichage sur l'écran de : ToolTip("Recherche sur " & $Drive, 100,200)
Merci pour votre aide.
Cordialement.

Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11252
Enregistré le : ven. 20 juil. 2007 20:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.

#15

Message par Tlem » ven. 18 mai 2018 20:30

Bonsoir Boulanza.
La commande FileSetAttrib que vous indiquez, modifie seulement les attributs des fichiers .ISO !!!
Pour le ToolTip, il vous suffit de mettre la ligne concernée en commentaire. ^^
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".

Boulanza
Niveau 7
Niveau 7
Messages : 314
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

Re: [..] Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.

#16

Message par Boulanza » sam. 19 mai 2018 00:04

Bonsoir Tlem,
Impossible de placer la commande "FileSetAttrib" pour modifier les attributs des fichiers .ISO, .doc ... dans le scripte de "walkson" on obtient un message de fermeture de AutoIt lors de lancement du test, en plus les fichiers ont comme attributs + AHRS, le scripte ne ne supprime pas les fichiers date du jour.
Pour le ToolTip, c'est fait, Merci.
Cordialement.

Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11252
Enregistré le : ven. 20 juil. 2007 20:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.

#17

Message par Tlem » sam. 19 mai 2018 00:32

Probablement parce que vous ne l'avez pas placé et configuré comme il faut.
Sans le code, difficile à dire. ^^
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".

Boulanza
Niveau 7
Niveau 7
Messages : 314
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

Re: [..] Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.

#18

Message par Boulanza » dim. 20 mai 2018 00:13

Bonsoir,
Effectivement, je n'ai pas pu le placer à la place et/ou le configuré comme il faut, pour qu'il marche correctement dans le scripte suivant:
#include <File.au3>
#include <Array.au3>

Local $arrayDrive = DriveGetDrive("All")
_ArrayDisplay($arrayDrive)
For $y = 1 To $arrayDrive[0] ;boucle sur drive
$Drive = StringUpper($arrayDrive[$y]) & "\" ; => C:\ à la place de c:
;ToolTip("Recherche sur " & $Drive, 100,200)
$array = _FileListToArrayRec ($Drive,"*.doc", $FLTAR_FILES ,$FLTAR_RECUR,$FLTAR_NOSORT,$FLTAR_FULLPATH );le file, récursive, pas de trie, chemin complet
    If IsArray($array) Then
                _ArrayDisplay($array)
                For $i = 1 To $array[0] ;boucle sur fichier Doc
                   $info = StringLeft(FileGetTime($array[$i],1,1),8)
                        $info_1 = StringLeft(FileGetTime($array[$i],0,1),8)
                        If $info = @YEAR & @MON & @MDAY Or $info_1 = @YEAR & @MON & @MDAY Then ;si créé ou modifié
                                        $rep = MsgBox(4,"Supprimer",$array[$i])
                                        If $rep = 6 Then
                                                        ;FileDelete($array[$i])
                                                        FileRecycle ($array[$i])
                                        EndIf
                        EndIf
                Next
        Else
                MsgBox(0,$Drive,"rien de trouvé")
        EndIf
;ToolTip("")
Next

Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11252
Enregistré le : ven. 20 juil. 2007 20:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.

#19

Message par Tlem » dim. 20 mai 2018 01:15

Rhhoo c'est étrange, je ne vois pas la ligne avec le FileSetAttrib. Du coup, c'est normal que les attributs de fichiers ne sont pas modifiés.
Par contre si vous avez un "message de fermeture de AutoIt lors de lancement du test" c'est que le code n'est pas bon. :mrgreen:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".

Boulanza
Niveau 7
Niveau 7
Messages : 314
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

Re: [..] Est ce possible de lister sous la fonction "_FileListToArrayEx" les fichiers crées à la date du jour.

#20

Message par Boulanza » dim. 20 mai 2018 12:10

Bonjour Tlem,
Je n'ai pas pu placer à la place "FileSetAttrib($array[$i] & "\", "-A-H-R-S", 1)" et/ou le configuré comme il faut, pour qu'il marche correctement sur le scripte de "walkson" :
#include <File.au3>
#include <Array.au3>

Local $arrayDrive = DriveGetDrive("All")
_ArrayDisplay($arrayDrive)
For $y = 1 To $arrayDrive[0] ;boucle sur drive
$Drive = StringUpper($arrayDrive[$y]) & "\" ; => C:\ à la place de c:
;ToolTip("Recherche sur " & $Drive, 100,200)
$array = _FileListToArrayRec ($Drive,"*.doc", $FLTAR_FILES ,$FLTAR_RECUR,$FLTAR_NOSORT,$FLTAR_FULLPATH );le file, récursive, pas de trie, chemin complet
    If IsArray($array) Then
                _ArrayDisplay($array)
                For $i = 1 To $array[0] ;boucle sur fichier Doc
                   $info = StringLeft(FileGetTime($array[$i],1,1),8)
                        $info_1 = StringLeft(FileGetTime($array[$i],0,1),8)
                        If $info = @YEAR & @MON & @MDAY Or $info_1 = @YEAR & @MON & @MDAY Then ;si créé ou modifié
                                        $rep = MsgBox(4,"Supprimer",$array[$i])
                                        If $rep = 6 Then
                                                        ;FileDelete($array[$i])
                                                        FileRecycle ($array[$i])
                                        EndIf
                        EndIf
                Next
        Else
                MsgBox(0,$Drive,"rien de trouvé")
        EndIf
;ToolTip("")
Next

Répondre