2011-08-11 58 views
9

編輯:我正在嘗試讀取特定文件夾中的所有文件,並列出其中的文件,而不是讀取特定文件的內容。我只是試圖簡單地創建一個FileSystemObject,它也不會做任何事情。我顯示了一個警告(彈出),使之成爲FileSystemObject,並在它之後顯示(未顯示)。所以問題在於簡單地創建對象。JavaScript:讀取文件夾中的文件

原文:

我將嘗試使用JavaScript來讀取一個文件夾中的所有文件。

這是一個本地HTML文件,它不會在服務器上,所以我不能使用PHP我猜。

現在我想要閱讀特定的指定文件夾中的所有文件,但它不會做任何事情的時候,我做一個FileSystemObject

這裏是我使用的代碼,該警報顯示,直到2 ,然後停止。

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

我這樣做是正確的嗎?

謝謝!

+0

什麼是瀏覽器的錯誤控制檯說? – Oswald

+0

它沒有說什麼,它彈出'2'後它什麼都不做了。有沒有辦法可以調試呢? – Killerwes

+0

對不起,只是用螢火蟲調試它。錯誤說'ActiveXObject未定義' – Killerwes

回答

4

我在Google搜索中找到的方法使用HTML5,所以如果您使用的是現代瀏覽器,則應該很好。此外,教程頁面似乎檢查您正在使用的瀏覽器是否支持這些功能。如果是這樣,你應該很好地遵循這個看起來很徹底的教程。

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

+3

謝謝你的答案,但我正在閱讀文件夾中的文件,如列表中的所有文件,而不是讀取文件的內容。 我只是試圖創建一個filesystemobject的對象,它也沒有做任何事情。它似乎並沒有在這裏工作。 我只想列出給定文件夾中的所有文件。 – Killerwes

4

此解決方案僅適用於IE11以上的老年人,因爲它是基於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" /> 
+0

當我嘗試這個時,我得到錯誤「ActiveXObject未定義」。 – Addem

+0

嗨Addem,這個解決方案只適用於IE11或更舊版本,因爲它基於MS。你能確認這是你正在使用的? – BelgoCanadian

+0

@BelgoCanadian您可以添加您的評論到您的答案 – Shogunivar