web-dev-qa-db-fra.com

JavaScript: lire les fichiers dans le dossier

EDIT: J'essaie de lire tous les fichiers dans un dossier spécifique et d'y lister les fichiers, pas de lire le contenu d'un fichier spécifique. J'ai juste essayé de créer simplement un FileSystemObject et cela ne fait rien non plus. Je montre une alerte (qui apparaît) avant de créer le FileSystemObject, et une après celle-ci (qui n'est pas affichée). Le problème est donc de créer simplement l'objet.

Original:

J'essaie de lire tous les fichiers d'un dossier en utilisant JavaScript.

C'est un fichier HTML local, et il ne sera pas sur un serveur, donc je ne peux pas utiliser PHP je suppose.

Maintenant, j'essaie de lire tous les fichiers dans un dossier donné, mais cela ne fait rien au point que je crée un FileSystemObject

Voici le code que j'utilise, l'alerte s'affiche jusqu'à 2 heures, puis elle s'arrête.

    alert('1');
    var myObject, afolder, date;
    alert('2');
    myObject = new ActiveXObject("Scripting.FileSystemObject");
    alert('3');
    afolder = myObject.GetFolder("c:\\tmp");
    alert('4');
    date = afolder.DateLastAccessed;
    alert("The folder"+name+" is a temporary folder.");

Est-ce que je fais ça de la bonne façon?

Merci!

11
Killerwes

La méthode que j'ai trouvée avec une recherche Google utilise HTML5, donc si vous utilisez un navigateur moderne, vous devriez être bon. La page du didacticiel semble également vérifier si le navigateur que vous utilisez prend en charge les fonctionnalités. Si c'est le cas, vous devriez être bon de suivre le tutoriel qui semble assez complet.

http://www.html5rocks.com/en/tutorials/file/dndfiles/

4
Corey Alexander

Cette solution ne fonctionne que sur IE11 ou plus ancienne car elle est basée sur MS

<script type="text/javascript"> 
    var fso = new ActiveXObject("Scripting.FileSystemObject"); 

    function showFolderFileList(folderspec) {    
        var s = "";
        var f = fso.GetFolder(folderspec);

        // recurse subfolders
        var subfolders = new Enumerator(f.SubFolders);
        for(; !subfolders.atEnd(); subfolders.moveNext()) {
            s += ShowFolderFileList((subfolders.item()).path);
        }  

        // display all file path names.
        var fc = new Enumerator(f.files);
        for (; !fc.atEnd(); fc.moveNext()) {
            s += fc.item() + "<br>";
        }
        return s; 
    }

    function listFiles() {
        document.getElementById('files').innerHTML = showFolderFileList('C:');
    }
</script>

<input type='button' onclick='listFiles()' value='List Files' />
<div id="files" />
4
BelgoCanadian