Page 1 sur 2

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

Posté : dim. 13 mai 2018 18:04
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.

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

Posté : dim. 13 mai 2018 21:51
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

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

Posté : mar. 15 mai 2018 18:23
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.

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

Posté : mar. 15 mai 2018 20:57
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")

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

Posté : mar. 15 mai 2018 22:38
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

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

Posté : mar. 15 mai 2018 23:48
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...

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

Posté : mer. 16 mai 2018 00:17
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)"

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

Posté : mer. 16 mai 2018 10:52
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

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

Posté : mer. 16 mai 2018 21:49
par mikell
Est-ce que par un malencontreux hasard l'un des disques ne contiendrait pas de fichier .doc ?
Image

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

Posté : mer. 16 mai 2018 23:41
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:

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

Posté : jeu. 17 mai 2018 10:50
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

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

Posté : jeu. 17 mai 2018 10:59
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

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

Posté : jeu. 17 mai 2018 11:32
par Boulanza
Bonjour walkson,
Merci infiniment pour votre aide: Exilent script. Je remercie également Monsieur Tlem pour ses conseilles.
Cordialement.

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

Posté : jeu. 17 mai 2018 14:09
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.

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

Posté : ven. 18 mai 2018 21:30
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. ^^

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

Posté : sam. 19 mai 2018 01:04
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.

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

Posté : sam. 19 mai 2018 01:32
par Tlem
Probablement parce que vous ne l'avez pas placé et configuré comme il faut.
Sans le code, difficile à dire. ^^

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

Posté : dim. 20 mai 2018 01:13
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

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

Posté : dim. 20 mai 2018 02:15
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:

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

Posté : dim. 20 mai 2018 13:10
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