FileSystemFileEntry - Web API 接口参考 编辑

非标准
该特性是非标准的,请尽量不要在生产环境中使用它!

文件系统 API 的 FileSystemFileEntry 接口表示文件系统中的文件。它提供了属性,描述文件的属性,以及 file() 方法,它创建了可以用于读取文件的 File 对象。

由于这是个非标准 API,它的规范当前并不在标准化过程中。重要的是要记住,并不是所有浏览器都实现了它,并且实现它的浏览器可能仅仅实现一小部分。点击 Browser compatibility 来查看更多细节。

属性

从它的父接口 FileSystemEntry 继承属性,但是这个接口没有独特的属性。

方法

file()
创建新的 File 对象,它可以用于读取文件。

废弃的方法

createWriter()
创建新的 FileWriter 对象,它允许写入由文件系统条目表示的对象。

基本概念

为了向文件写入内容,通过调用 createWriter() 创建 FileWriter 对象。为了读取文件,通过调用 file(),获取表示其内容的 File 对象。

示例

下面的代码创建了一个空文件,叫做 "log.txt" (如果不存在的话),并使用文本 "Meow" 来填充。在成功的回调中,设置了事件处理器,来处理 error error 和 writeend 事件。通过创建 blob,向其追加文本,以及将 blob 传递给  FileWriter.write(),文本数据写入了文件。

function onInitFs(fs) {
  fs.root.getFile('log.txt', {create: true}, function(fileEntry) {

    // Create a FileWriter object for our FileSystemFileEntry (log.txt).
    fileEntry.createWriter(function(fileWriter) {
      fileWriter.onwriteend = function(e) {
        console.log('Write completed.');
      };

      fileWriter.onerror = function(e) {
        console.log('Write failed: ' + e.toString());
      };

      // Create a new Blob and write it to log.txt.
      var bb = new BlobBuilder();
      bb.append('Meow');

      fileWriter.write(bb.getBlob('text/plain'));
    }, errorHandler);

  }, errorHandler);

}

window.requestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler);

规范

SpecificationStatusComment
File and Directory Entries APIDraftDraft of proposed API

这个 API 没有官方的 W3C 或者 WHATWG 规范。

浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerMicrosoft EdgeOperaSafari (WebKit)
Basic support13 webkit(Yes)50 (50)未实现(Yes)[2]未实现未实现
createWriter()13 webkit未实现未实现[1]未实现未实现未实现未实现
FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE PhoneOpera MobileSafari Mobile
Basic support未实现0.16webkit(Yes)50.0 (50)未实现未实现未实现
createWriter()未实现0.16webkit未实现未实现[1]未实现未实现未实现

[1] 虽然从 Firefox 50 开始,存在 createWriter() 方法,它是不受支持的,并且会立即报告 NS_ERROR_DOM_SECURITY_ERR错误给错误回调。这个方法在 Firefox 52 中彻底移除。

[2] Microsoft Edge 实现了这个接口,作为 WebKitEntry 接口的一部分,它是用于 FileSystemEntry 的名称。

另见

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:102 次

字数:8621

最后编辑:7年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文