IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Manipulation des répertoires [WD18]


Sujet :

WinDev

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2016
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Manipulation des répertoires
    Bonjour,

    Je cherche à réaliser une fonction sur les répertoires. Je m'explique :

    J'ai un chemin = c:\rep\xrep\documents

    le répertoire "xrep" peut s’appeler par n'importe quel nom, car il est généré automatiquement.

    Je cherche à afficher la taille du dossier "documents" dans une "lib" sans connaitre le nom du répertoire qui dans l'exemple est "Xrep".

    Est ce que quelqu'un aurait une idée ?

    Merci.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    486
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 486
    Points : 875
    Points
    875
    Par défaut
    fListDirectory

  3. #3
    Membre averti Avatar de LeonCosnyd
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 439
    Points : 368
    Points
    368
    Par défaut
    Si tu cherches à connaitre la taille du répertoire en Mo tu as une fonction pour cela : fRepTaille()

    Qui donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    UnRépertoire, ResListeRépertoire sont des chaînes
    ResListeRépertoire = fListeRépertoire("C:\rep\",frNonRécursif)
    POUR TOUTE CHAÎNE UnRépertoire DE ResListeRépertoire SEPAREE PAR RC
    	SI fRépertoireExiste(UnRépertoire +["\"]+"documents") ALORS
    		Info(fRepTaille(UnRépertoire +["\"]+"documents")+" octets")
    		SORTIR
    	FIN
    FIN
    Google est ton ami !

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2016
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Cela fonctionne mais je galère pour afficher la taille en Go.

    J'utilise la fonction "TailleVersChaine" mais j'ai toujours une erreur de compilation.

  5. #5
    Membre averti Avatar de LeonCosnyd
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 439
    Points : 368
    Points
    368
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    TailleEnOctets est un entier
    TailleEnGigaoctets est un réel
    UnRépertoire, ResListeRépertoire sont des chaînes
    ResListeRépertoire = fListeRépertoire("C:\rep\",frNonRécursif)
    POUR TOUTE CHAÎNE UnRépertoire DE ResListeRépertoire SEPAREE PAR RC
    	SI fRépertoireExiste(UnRépertoire +["\"]+"documents") ALORS
    		TailleEnOctets  =fRepTaille(UnRépertoire +["\"]+"documents")
    		TailleEnGigaoctets  = Arrondi(TailleEnOctets / 1024 / 1024 / 1024,2) // o->Ko->Mo->Go
    		Info("Taille du dossier :"+TailleEnGigaoctets  +" Go"
    		SORTIR
    	FIN
    FIN
    Google est ton ami !

  6. #6
    Membre averti Avatar de LeonCosnyd
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 439
    Points : 368
    Points
    368
    Par défaut
    Mais cela devrait aussi fonctionner avec la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    TailleEnOctets est un entier
    UnRépertoire, ResListeRépertoire sont des chaînes
    ResListeRépertoire = fListeRépertoire("C:\rep\",frNonRécursif)
    POUR TOUTE CHAÎNE UnRépertoire DE ResListeRépertoire SEPAREE PAR RC
    	SI fRépertoireExiste(UnRépertoire +["\"]+"documents") ALORS
    		TailleEnOctets  = fRepTaille(UnRépertoire +["\"]+"documents")
    		SI TailleEnOctets = -1 ALORS
    			Erreur(ErreurInfo(errMessage))
    		SINON
    			Info(TailleVersChaîne(TailleEnOctets , tailleGo)
    		FIN
    		SORTIR
    	FIN
    FIN
    Google est ton ami !

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2016
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Oui, cela fonctionne mais mon problème est que le dossier est supérieur à 2Go. Et Là, c'est plus bon.

  8. #8
    Membre averti Avatar de LeonCosnyd
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 439
    Points : 368
    Points
    368
    Par défaut
    Et Là, c'est plus bon.
    C'est à dire ? Vous avez une valeur incorrecte ? Une exception à l’exécution ? Si oui est-il possible de la voir ?
    Google est ton ami !

  9. #9
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 441
    Points
    2 441
    Par défaut
    Citation Envoyé par Droopy41 Voir le message
    Oui, cela fonctionne mais mon problème est que le dossier est supérieur à 2Go. Et Là, c'est plus bon.
    Bonjour,

    Cela tombe sous le sens : un entier 'standard' est codé sur 4 octets et peut contenir des valeurs allant de -2 x 10 9 à +2 x 109, donc +/- 2 milliards ou Gigas.
    Donc, il faut travailler avec un entier sur 8 octets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TailleEnOctets est un entier sur 8 octets
    Après vérification, la documentation en fait état, mais uniquement dans la page consacrée à fTaille().

    Bon travail

    Hemgé

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2016
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Effectivement.

    Après modifications, cela marche très bien.

    Merci.


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ZF 1.8] Manipuler des répertoires et fichiers
    Par guiyomh dans le forum Autres composants
    Réponses: 2
    Dernier message: 30/07/2009, 16h51
  2. Réponses: 0
    Dernier message: 02/11/2007, 15h02
  3. Manipuler des dates...
    Par Ti Jen-tsie dans le forum Langage
    Réponses: 4
    Dernier message: 26/06/2003, 11h46
  4. Manipulation des handle contexte
    Par rockbiker dans le forum DirectX
    Réponses: 1
    Dernier message: 09/05/2003, 18h51
  5. Fonctions de manipulation des chaines et des dates
    Par Fares BELHAOUAS dans le forum Débuter
    Réponses: 3
    Dernier message: 09/11/2002, 22h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo