我想做的事:
我想创建一个Chrome扩展用于测试目的。 这延长应该能够访问本地硬盘驱动器上的目录和文件。
如何我做到了:
我要求权限file:///*
在我manifest.json
文件。 然后,我确信,该复选框Allow access to file URLs
进行了调查。 然后,我做了一个文件XHR:
var xhr = new XMLHttpRequest();
xhr.open("GET", 'file://c:/dir/file.name', true);
xhr.onload = function(e) {
console.log('response: ', xhr.response);
}
xhr.send();
...并为整个目录XHR:
var xhr = new XMLHttpRequest();
xhr.open("GET", 'file://c:/dir/', true);
xhr.onload = function(e) {
console.log('response: ', xhr.response);
}
xhr.send();
...和总文件系统:
var xhr = new XMLHttpRequest();
xhr.open("GET", 'file:///', true);
xhr.onload = function(e) {
console.log('response: ', xhr.response);
}
xhr.send();
发生了什么:
- 我能为我的文件请求正确的反应。
- 当我要求一个目录,我收到Chrome的默认人类可读的目录概述的源代码:
。
<html>
<head>
<script>
[...]
</script>
<style>
[...]
</style>
<title id="title"></title>
</head>
<body>
<div id="listingParsingErrorBox" i18n-values=".innerHTML:listingParsingErrorBoxText"></div>
<span id="parentDirText" style="display:none" i18n-content="parentDirText"></span>
<h1 id="header" i18n-content="header"></h1>
<table id="table">
<tr class="header">
<td i18n-content="headerName"></td>
<td class="detailsColumn" i18n-content="headerSize"></td>
<td class="detailsColumn" i18n-content="headerDateModified"></td>
</tr>
</table>
</body>
</html>
[...]
<script>start("C:\\dir\\");</script>
<script>addRow("..","..",1,"0 B","11/11/11 11:11:11 AM");</script>
<script>addRow("file.name","file.name",0,"4.9 kB","11/11/11 11:11:11 PM");</script>
- 当我要求整个文件系统,我得到了一个错误。
我的问题:
我能读懂简单的文件。 但我的分机号可以得到一个目录或总文件系统的一个很好的机器可读概述 ? 谢谢。
编辑:我知道文件系统API用于访问沙盒filesystem://
,但也许Chrome可让扩展还可以访问file://
。 我找不到任何有关文件file://
从Chrome扩展的访问,所以我只是能猜到。