Page 1 sur 1

[R] Lister tous les fichiers ayant la même extension

Posté : mar. 30 août 2011 21:07
par sablier94
Bonjour,

J'aimerai lister (dans un tableau ou un fichier texte) tous les fichiers ayant l’extension .tmp en cherchant dans TOUS les dossiers de la partition C:\

J'ai fait des recherches mais je n'ai pas trouvé ce genre de fonction.

Il faudrait sûrement utiliser les fonctions suivantes mais je vois pas comment faire l'algorithme pour chercher dans tout le disque.

Code : Tout sélectionner

FileFindFirstFile(), FileFindNextFile(), ...
Merci pour votre aide ! :wink:

Re: [..] Lister tous les fichiers ayant la même extension

Posté : mar. 30 août 2011 21:45
par PandiPanda
ceci ne vous conviendrai pas ?

Code : Tout sélectionner

Run(@ComSpec & " /c " & 'DIR /S *.tmp >'&@ScriptDir&'\tmp.txt', "", @SW_HIDE)

Re: [..] Lister tous les fichiers ayant la même extension

Posté : mar. 30 août 2011 22:01
par sablier94
Salut,

Il faudra que je teste sur mon ordinateur mais ça devrait être bon.

Et dire que je cherchais quelque chose de plus long en batch/autoit... :roll:

Merci :)

Re: [..] Lister tous les fichiers ayant la même extension

Posté : mar. 30 août 2011 22:47
par Tlem
Plus long et sous AutoIt !
Pas de problème, nous avons cela en stock : http://www.autoitscript.fr/forum/viewto ... f=21&t=479

Re: [..] Lister tous les fichiers ayant la même extension

Posté : mer. 31 août 2011 02:30
par legend
cependant rechercher dans tout un disque dur risque d'être très long sous autoit.
je conseille d'utiliser un simple tool de recherche (peut être celui de windows) en fenêtre invisible accompagné d'un script autoit.

Re: [..] Lister tous les fichiers ayant la même extension

Posté : mer. 31 août 2011 18:22
par sablier94
Hello,

J'ai testé les deux méthodes, mais malheureusement aucune d'elles ne marche, le code s'exécute, mais rien ne se passe.

Voici le code utilisé avec l'UDF de Tlem :

Code : Tout sélectionner

#include <Array.au3>
#include <RecFileListToArray.au3>

$ar_Array = _RecFileListToArray ("c:\", "*.tmp", 0, 0, 2, 1, "")
_ArrayDisplay($ar_Array, "Liste des fichiers").
Et pareil pour le code de PandiPanda.

Re: [..] Lister tous les fichiers ayant la même extension

Posté : mer. 31 août 2011 19:06
par PandiPanda
question idiotes, mais cependant nécessaires ...
vous êtes certain de posséder des fichiers ayant l'extension ".tmp"? ^^

Re: [..] Lister tous les fichiers ayant la même extension

Posté : mer. 31 août 2011 19:11
par sablier94
Oui j'en ai. (Et même, cela créerait un fichier vide non ?)

Le code marche chez toi ?

Re: [..] Lister tous les fichiers ayant la même extension

Posté : mer. 31 août 2011 19:17
par PandiPanda
Oui celui que j'ai poster fct parfaitement et me créer bien un fichier +- vide ^^
j'ai ceci sur le bureau (script lancer depuis le bureau);
► Afficher le textetmp.txt

Re: [..] Lister tous les fichiers ayant la même extension

Posté : mer. 31 août 2011 19:48
par Tlem
L'utilisation de la fonction _RecFileListToArray est incorrecte.
Utilisez ce code :

Code : Tout sélectionner

#include <Array.au3>
#include <RecFileListToArray.au3>

$ar_Array = _RecFileListToArray ("c:\", "*.tmp", 1, 1)
_ArrayDisplay($ar_Array, "Liste des fichiers *.tmp du disque C:").
Paramètre 1 = Chemin de recherche.
Paramètre 2 = Masque du ou des fichiers (si plusieurs fichiers, séparer le masque par un point virgule).
Paramètre 3 = Type de retour 0 = Fichier + Dossier; 1 fichiers seuls; 2 dossiers seuls.
Paramètre 4 = Recherche récursive (0 = non; 1 = oui).
Paramètre 5 = Non utilisé
Paramètre 6 = Non utilisé
Paramètre 7 = Non utilisé
Paramètre 8 = Non utilisé

Re: [..] Lister tous les fichiers ayant la même extension

Posté : jeu. 01 sept. 2011 21:30
par sablier94
Merci pour le coup de pouce :wink:

Bon c'est très très très lent mais j'ai pas trop le choix...

Merci

EDIT : J'ai réussi à faire un batch qui correspond à ce que je cherchais. Je n'aurais plus qu'à l’exécuter en Autoit. :D

Code :

Code : Tout sélectionner

@echo off
:: \\ Code orignal by STRYK

echo Analyse en cours, patientez svp ...
for %%A in ( C D E F G H I J K L M N O P Q R S T U V W X Y Z ) do (
    if exist %%A: for /f "tokens=*" %%B in ('dir /b /s %%A:\*.tmp') do (
    echo %%B >> ListTemp.txt
        set /a SIZE+=%%~zB
      set /a FILES+=1
        )
    )
cls
echo.
echo Taille totale des fichiers .tmp sur tous les lecteurs en octets : %SIZE% >> ListTemp.txt
echo.
echo %FILES% >> ListTemp.txt

Re: [..] Lister tous les fichiers ayant la même extension

Posté : ven. 02 sept. 2011 00:43
par Tlem
sablier94 a écrit :Je n'aurais plus qu'à l’exécuter en Autoit. :D
Voici une base :
► Afficher le texte