我想读取一个目录并用这些文件的名称填充一个列表。
是否可以使用javascript执行此任务?
答案 0 :(得分:4)
不,出于安全原因。
您可以通过调用ActiveX或Flash并让用户同意允许从这些插件访问文件系统来实现,但是 - 请不要这样做。
答案 1 :(得分:2)
不,这是不可能的。您是否希望有人阅读您的目录的内容?
更新:我认为使用webkitdirectory
属性可能获得的距离最近:
HTML 的
<input type="file" id="file_input" webkitdirectory="" directory="" />
<div id="list_of_files"></div>
...
JS
var $list = $('#list_of_files');
$('#file_input').change(function(event) {
var listOfFiles = event.target.files;
for (var i = 0, l = listOfFiles.length; i < l; ++i) {
$list.append($('<p>'+ listOfFiles[i].name +'</p>'));
}
});
...如图所示here。但它仅适用于Chrome(建议使用mozdirectory
属性无效)。
答案 2 :(得分:2)
您可以尝试使用FileReader
对象,但浏览器支持不足。
答案 3 :(得分:1)
在谷歌浏览器中,您可以提示客户端选择一个目录,然后使用它来列出目录及其子目录中包含的文件:
<input type="file" webkitdirectory onchange="listContents(this.files)">
listContents
将是您的实施。
答案 4 :(得分:0)
我不知道你是否正在进行安全研究等等。所以除了说“你不应该这样做”之外,问题的实际答案是,你实际上可以通过利用差的方式阅读文件 - 编写JS代码,这就是为什么你应该编码......防守。
答案 5 :(得分:0)
是的,具体取决于您拥有的浏览器。
即使这不是常见做法,但您可以使用Chrome等某些浏览器(使用webkitRequestFileSystem支持的requestFileSystem)或使用文件系统对象在Internet Explorer中使用。