none
Java script: Compter le nombre de fichiers présents dans un répertoire et ses sous-répertoires RRS feed

  • Question

  • Bonjour à tous,

    Je voudrais que vous m'aidiez, la fonction ci-dessous me permet de compter le nombre de fichiers présents dans le repertoire de nom "Name_rep":

    <SCRIPT>

    fso = new ActiveXObject("Scripting.FileSystemObject");
    var n = 0;
    var f, ff=""
    f = fso.GetFolder("Name_rep"")
    ff = new Enumerator(f.files);

    for(; !ff.atEnd(); ff.moveNext())
    {
    n++;
    }

    document.write(n);

    </SCRIPT>

    Mais j'aimerais allez un peu plus loin, je voudrais compter le nombre de fichiers dans ce repertoire et ses sous-repertoires, et les sous-repertoires des sous-repertoires...je sais qu'il faut créer une fonction récursive, enfin je pense...

    Si quelqu'un à l'information, je suis preneur Smile

    jeudi 19 juin 2008 15:31

Réponses

  • Bonjour,

    Voila une version récursive de votre code :

     

    Code Snippet

    function CountFile(folder)
    {
        // compte le nombre de fichier du repertoire
        var fileCount = 0;
        var e = new Enumerator(folder.Files);
        for ( ; !e.atEnd() ; e.moveNext())
        {
            ++fileCount;
        }
       
        // parcours les sous repertoires
        e = new Enumerator(folder.SubFolders)
        for ( ; !e.atEnd() ; e.moveNext())
        {
            fileCount += CountFile(e.item());
        }
       
        return fileCount;
    }

    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var rootFolder = fso.GetFolder("Name_rep");
    var fileCount = CountFile(rootFolder);

    document.write(fileCount);

     

     

     

    jeudi 19 juin 2008 15:50

Toutes les réponses

  • Bonjour,

    Voila une version récursive de votre code :

     

    Code Snippet

    function CountFile(folder)
    {
        // compte le nombre de fichier du repertoire
        var fileCount = 0;
        var e = new Enumerator(folder.Files);
        for ( ; !e.atEnd() ; e.moveNext())
        {
            ++fileCount;
        }
       
        // parcours les sous repertoires
        e = new Enumerator(folder.SubFolders)
        for ( ; !e.atEnd() ; e.moveNext())
        {
            fileCount += CountFile(e.item());
        }
       
        return fileCount;
    }

    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var rootFolder = fso.GetFolder("Name_rep");
    var fileCount = CountFile(rootFolder);

    document.write(fileCount);

     

     

     

    jeudi 19 juin 2008 15:50
  • J'ai posté ce topic sur 3 autres forums, vous êtes le seul à avoir épondu aussi pertinemment.

    Merci beaucoup !

    vendredi 20 juin 2008 10:47