Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JavaScript: Read files in folder

EDIT: I'm trying to read all the files in a specific folder and list the files in there, not read the content of a specific file. I just tried to simply create an FileSystemObject and it doesn't do anything either. I show an alert (which pops up) beforfe making the FileSystemObject, and one after it (which isn't shown). So the problem is in simply creating the object.

Original:

I am trying to read all the files in a folder by using JavaScript.

It is a local HTML file, and it will not be on a server, so I can't use PHP I guess.

Now I'm trying to read all the files in a specific given folder, but it doesn't do anything on the point I make a FileSystemObject

Here is the code I use, The alert shows until 2, then it stops.

    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.");

Am I doing this the right way?

Thanks!

like image 752
Killerwes Avatar asked Aug 11 '11 07:08

Killerwes


2 Answers

The method I found with a Google search uses HTML5 so if you are using a modern browser you should be good. Also the tutorial page seems to check if the browser you are using supports the features. If so you should be good to follow the tutorial which seems pretty thorough.

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

like image 188
Corey Alexander Avatar answered Nov 12 '22 15:11

Corey Alexander


This solution only works on IE11 or older since it is MS based

<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" />
like image 25
BelgoCanadian Avatar answered Nov 12 '22 14:11

BelgoCanadian