【发布时间】:2013-06-19 15:51:49
【问题描述】:
我正在编写一个对文件系统具有完全访问权限的应用程序,并且我希望能够获取我的扩展目录的绝对路径。我该怎么做?
我的应用拥有"<all_urls>", {"filesystem": [ "write" ]} 的权限,并勾选了“允许访问文件网址”。
【问题讨论】:
-
仅供参考,
filesystem权限仅允许对Chrome's sandboxed filesystem 的写访问,而不是用户的实际文件系统。根据您的权限,我假设您想要对实际文件系统进行读取访问,并对沙盒文件系统进行读写访问。 -
@apsillers 不,我需要两者的读写权限。我是否需要其他权限(除此之外并让用户选中“允许访问文件 URL”复选框)?
-
据我所知,Chrome 扩展 API 无法允许对实际文件系统进行写访问(除了让用户将文件保存为下载文件)。您可以使用 NPAPI 插件,但学习曲线非常陡峭,而且该工具非常强大(如果您有安全漏洞,因此很危险)。
-
@apsillers 如果是这样,那么该复选框有什么作用?不适用吗?
-
@apsillers 是对的。如果您确实找到了一种无需用户手势即可写入扩展文件夹的方法,那是一个错误,您不应该依赖它。需要明确的是,文件系统权限不适用于所有应用程序都可以使用的沙盒文件系统。它是通过用户手势访问非沙盒文件。该复选框用于 XHR 到 file:// url,但您将无法可靠地获取路径,并且它不会 AFAIK 启用写入。
标签: google-chrome google-chrome-extension google-chrome-app