JavaScript:读取文件夹中的文件

Posted

技术标签:

【中文标题】JavaScript:读取文件夹中的文件【英文标题】:JavaScript: Read files in folder 【发布时间】:2011-10-24 17:21:44 【问题描述】:

编辑:我正在尝试读取特定文件夹中的所有文件并列出其中的文件,而不是读取特定文件的内容。我只是试图简单地创建一个 FileSystemObject 并且它也没有做任何事情。我在制作 FileSystemObject 之前显示一个警报(弹出),然后在它之后显示一个警报(未显示)。所以问题在于简单地创建对象。

原文:

我正在尝试使用 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.");

我这样做是否正确?

谢谢!

【问题讨论】:

你浏览器的错误控制台是什么意思? 它什么也没说,只是在弹出“2”后不再做任何事情。有什么办法可以调试吗? 抱歉,刚刚用 firebug 调试过。错误说ActiveXObject is not defined 你说“萤火虫”,我听到的是 Firefox。 Firefox 不知道 ActiveXObject,因为它是 Microsoft 的专有技术。 不清楚具体文件夹是用户选择的还是代码中预定义的。如果是第一种情况(并且文件夹选择对话框对您来说没问题),那么有一个简单的 html5 解决方案。 【参考方案1】:

我在 Google 搜索中找到的方法使用 HTML5,所以如果您使用的是现代浏览器,您应该会很好。此外,教程页面似乎会检查您使用的浏览器是否支持这些功能。如果是这样,您应该很好地遵循看起来非常详尽的教程。

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

【讨论】:

感谢您的回答,但我希望读取文件夹中的文件,如列出其中的所有文件,而不是读取文件的内容。我只是试图创建一个文件系统对象的对象,它也没有做任何事情。它在这里似乎不起作用。我只想列出给定文件夹中的所有文件。【参考方案2】:

此解决方案仅适用于 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" />

【讨论】:

当我尝试这个时,我得到错误“ActiveXObject is not defined”。 您好,Addem,此解决方案仅适用于 IE11 或更早版本,因为它是基于 MS 的。你能确认这是你使用的吗? @BelgoCanadian 您能否将您的评论添加到您的答案中

以上是关于JavaScript:读取文件夹中的文件的主要内容,如果未能解决你的问题,请参考以下文章

如何从项目目录中读取 javascript 中的属性文件?

javascript 已知文件名的本地文件的读取

通过javascript从文件夹中的mp3文件中读取id3标签

在运行时使用 Phonegap 和 Javascript 读取应用程序包中的文件

javascript可以读取txt.请问javascript如何读取本地的TXT文件,然后将内容存入1个数组中?

用javascript读取本地文本文件[重复]