在不使用ActiveXObject或php的情况下脱机读取本地文件夹中的所有文件

时间:2012-10-17 00:09:40

标签: javascript html5

我是初学者!我需要离线读取本地文件夹中的txt文件内的数据。我知道文件夹路径,但我不知道每个文件的名称。

C:\mypath\first.txt
C:\mypath\second.txt
C:\mypath\third.txt
...

现在我要阅读一个sigle文件:

$.ajax({url:"C:\mypath\first.txt",
success:function(result){

//...code for storing the data in a variable...

}
});

如何在不知道姓名的情况下一次阅读多个文件?类似的东西:

$.ajax({url:"C:\mypath\*.txt",
success:function(result){


//...code for storing the data in a variable...

}
});

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您可以在支持的浏览器中使用文件选择器控件(即<input type="file" multiple />),并让用户选择要迭代的文件集。用户输入是获取文件列表的唯一方法 - 您不能只是通过互联网在用户的文件系统中查找。您可以了解用户系统的所有信息(例如,通过<input type="file" multiple />)。

即使这样,您也无法使用简单的Ajax请求读取文件。 Same origin policies适用于本地文件。如果你在自己的机器上测试它可能会有效,但一旦它到达网络,它就会失败。

在没有用户交互的情况下查看客户端文件系统的唯一方法是在非基于Internet的Scripting.FileSystemObject.hta文件)中的窗口上使用HTML Application ActiveXControl。因此,由于您不想使用ActiveXControls,因此用户输入是您唯一的选择。

编辑:如果您要创建FireFox插件,则可以访问文件系统。有关详细信息,请参阅documentation at mozilla.org