[R] Effacement des dossiers si vides
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
Gnifrus
- Niveau 4

- Messages : 81
- Enregistré le : mar. 14 juil. 2009 13:48
- Localisation : Montauban
- Status : Hors ligne
[R] Effacement des dossiers si vides
Bonjour,
Je recherche une méthode ou une piste pour faire la chose suivante :
Je dispose d'un dossier, qui a une arborescence de dossiers et fichiers que je ne connais pas à l'avance, sur n profondeur.
Je souhaiterai effacer les dossiers vides, ou les dossiers qui contiennent des dossiers vides....etc...
En gros, ne conserver que arborescence des dossiers qui contiennent des fichiers, ou dit différemment, seuls les fichiers m’intéressent dans cette arborescence, donc je veux virer tous les autres dossiers inutiles...
Je pensais qu'il fallait faire d'abord un tableau de cette arborescence, pour commencer à traiter les dossiers les plus "éloignés" du dossier de base, et ainsi de suite....
Vous en pensez quoi ? Que me donneriez vous comme solution, piste ou autre ?
Merci d'avance pour votre aide, car je suis un petit peu bloqué !
Bonne journée,
Gnifrus.
Je recherche une méthode ou une piste pour faire la chose suivante :
Je dispose d'un dossier, qui a une arborescence de dossiers et fichiers que je ne connais pas à l'avance, sur n profondeur.
Je souhaiterai effacer les dossiers vides, ou les dossiers qui contiennent des dossiers vides....etc...
En gros, ne conserver que arborescence des dossiers qui contiennent des fichiers, ou dit différemment, seuls les fichiers m’intéressent dans cette arborescence, donc je veux virer tous les autres dossiers inutiles...
Je pensais qu'il fallait faire d'abord un tableau de cette arborescence, pour commencer à traiter les dossiers les plus "éloignés" du dossier de base, et ainsi de suite....
Vous en pensez quoi ? Que me donneriez vous comme solution, piste ou autre ?
Merci d'avance pour votre aide, car je suis un petit peu bloqué !
Bonne journée,
Gnifrus.
Modifié en dernier par Gnifrus le jeu. 28 mars 2013 11:51, modifié 4 fois.
Re: [..] Effacement des dossiers si vides
Bonjour,
Je pense qu'une recherche avec "_FileListToArray recursive" sur le forum anglais t'aidera.
Cdlt.
Je pense qu'une recherche avec "_FileListToArray recursive" sur le forum anglais t'aidera.
Cdlt.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
-
SurPriseS
- Niveau 6

- Messages : 293
- Enregistré le : jeu. 06 sept. 2007 11:35
- Localisation : Finistère sud
- Status : Hors ligne
Re: [..] Effacement des dossiers si vides
Code : Tout sélectionner
#include<Array.au3>
#include<FileListToArrayNT.au3>
$start = 0
while $start = 0
$ar_Array = _FileListToArrayNT ("Z:\backup Cobian", "*.*", 2, 2, True, "Temp")
For $i = 1 to $ar_Array[0]
sleep(10)
$start = 1
$size = DirGetSize($ar_Array[$i], 1)
if $size[0] = 0 and $size[1] = 0 and $size[2] = 0 Then
DirRemove($ar_Array[$i])
$start = 0
EndIf
Next
WEnd
L'include : http://www.autoitscript.fr/forum/viewto ... 893#p34893
Modifié en dernier par SurPriseS le ven. 17 févr. 2012 21:54, modifié 2 fois.
- Tlem
- Site Admin

- Messages : 11830
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Effacement des dossiers si vides
@DimVar
Pourquoi renvoyer vers le forum Anglais, alors qu'il y a tout ce qu'il faut ici :
http://www.autoitscript.fr/forum/viewto ... f=21&t=479
@SurPriseS
Il n'est pas raisonable de présenter un code qui fait appel à une fonction non standard d'AutoIt sans en indiqué la source ou le code ...
Pourquoi renvoyer vers le forum Anglais, alors qu'il y a tout ce qu'il faut ici :
http://www.autoitscript.fr/forum/viewto ... f=21&t=479
@SurPriseS
Il n'est pas raisonable de présenter un code qui fait appel à une fonction non standard d'AutoIt sans en indiqué la source ou le code ...
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é".
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é".
-
Gnifrus
- Niveau 4

- Messages : 81
- Enregistré le : mar. 14 juil. 2009 13:48
- Localisation : Montauban
- Status : Hors ligne
Re: [..] Effacement des dossiers si vides
Merci à tous pour votre aide !
Je ne connaissais pas ces fonctions...
Je vais essayer d'exploiter cette piste dès lundi, au boulot.
Dans l'attente, je laisse mon topic ouvert et vous tiendrai au courant !
Un grand grand merci encore !
Gnifrus.
Je ne connaissais pas ces fonctions...
Je vais essayer d'exploiter cette piste dès lundi, au boulot.
Dans l'attente, je laisse mon topic ouvert et vous tiendrai au courant !
Un grand grand merci encore !
Gnifrus.
-
SurPriseS
- Niveau 6

- Messages : 293
- Enregistré le : jeu. 06 sept. 2007 11:35
- Localisation : Finistère sud
- Status : Hors ligne
Re: [..] Effacement des dossiers si vides
J'étais au taff, je savais bien que je zappais un morceauTlem a écrit : @SurPriseS
Il n'est pas raisonable de présenter un code qui fait appel à une fonction non standard d'AutoIt sans en indiqué la source ou le code ...
J'ai édité
-
Gnifrus
- Niveau 4

- Messages : 81
- Enregistré le : mar. 14 juil. 2009 13:48
- Localisation : Montauban
- Status : Hors ligne
Re: [..] Effacement des dossiers si vides
Bonjour,
Merci beaucoup !
J'ai essayé et ça marche impec !
Vous m'avez encore sauvé d'un mauvais pas !!!
@bientôt, (je n'en doute pas...
)
Gnifrus.
Merci beaucoup !
J'ai essayé et ça marche impec !
Vous m'avez encore sauvé d'un mauvais pas !!!
@bientôt, (je n'en doute pas...
Gnifrus.
-
Gnifrus
- Niveau 4

- Messages : 81
- Enregistré le : mar. 14 juil. 2009 13:48
- Localisation : Montauban
- Status : Hors ligne
Re: Effacement des dossiers si vides
Bonjour,
Je me permets de relancer mon sujet sur l'effacement des dossiers vides, car lorsque j'ai voulu réessayer le code de SurPriseS, je me suis aperçu qu'il générait une erreur "Subscript used with non-Array variable" dans certaines situations, notamment lorsque le dossier dans lequel rechercher les dossiers vides, ne comportait aucun dossier ou que des dossiers vides.
J'ai cherché toute la journée, mais là, je jette l'éponge !!!
Y aurait-il une âme charitable pour me venir en aide ?
Merci par avance,
Bonne soirée,
Gnifrus
Je me permets de relancer mon sujet sur l'effacement des dossiers vides, car lorsque j'ai voulu réessayer le code de SurPriseS, je me suis aperçu qu'il générait une erreur "Subscript used with non-Array variable" dans certaines situations, notamment lorsque le dossier dans lequel rechercher les dossiers vides, ne comportait aucun dossier ou que des dossiers vides.
J'ai cherché toute la journée, mais là, je jette l'éponge !!!
Y aurait-il une âme charitable pour me venir en aide ?
Merci par avance,
Bonne soirée,
Gnifrus
- parazitenew
- Niveau 7

- Messages : 310
- Enregistré le : sam. 10 déc. 2011 15:08
- Localisation : Algerie
- Status : Hors ligne
Re: Effacement des dossiers si vides
Cette erreur signifie que l'Array est vide, pour éviter cette erreur ajoute ceci après que l'Array soit crée:
Si il n'y a pas d'erreur, dans ce cas, le script continue, sinon il passe son chemain.
Code : Tout sélectionner
If Not @Error Then
Execute moi le reste du script
Else
Tu sors
EndIf-
Gnifrus
- Niveau 4

- Messages : 81
- Enregistré le : mar. 14 juil. 2009 13:48
- Localisation : Montauban
- Status : Hors ligne
Re: Effacement des dossiers si vides
Bonjour,
Merci parazitenew !
Ta solution fonctionne parfaitement !
J'avais bien essayé avec un "If Not @Error Then..." mais comme un c.., j'avais mis un "Return" pour sortir de la boucle au lieu d'un "ExitLoop" !
Quel boulet !
Merci encore,
Bonne continuation et... à bientôt,
Gnifrus.
Merci parazitenew !
Ta solution fonctionne parfaitement !
J'avais bien essayé avec un "If Not @Error Then..." mais comme un c.., j'avais mis un "Return" pour sortir de la boucle au lieu d'un "ExitLoop" !
Quel boulet !
Merci encore,
Bonne continuation et... à bientôt,
Gnifrus.

