[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 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15: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 »

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 20:24, modifié 7 fois.
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15: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 »

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 18:27, modifié 1 fois.
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15: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 »

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 20:25, modifié 1 fois.
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
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 »

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
(Je ne compte que les heures heureuses)
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15: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 »

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 : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
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 »

#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
(Je ne compte que les heures heureuses)
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15: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 »

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 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15: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 »

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
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17: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 »

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 : 11773
Enregistré le : ven. 20 juil. 2007 21: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 »

Bonsoir tout le monde.
walkson a écrit : mar. 15 mai 2018 20: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 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15: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 »

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 : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
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 »

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
(Je ne compte que les heures heureuses)
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15: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 »

Bonjour walkson,
Merci infiniment pour votre aide: Exilent script. Je remercie également Monsieur Tlem pour ses conseilles.
Cordialement.
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15: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 »

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 : 11773
Enregistré le : ven. 20 juil. 2007 21: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 »

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 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15: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 »

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 : 11773
Enregistré le : ven. 20 juil. 2007 21: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 »

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 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15: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 »

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 : 11773
Enregistré le : ven. 20 juil. 2007 21: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 »

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 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15: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 »

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