FileSystemEntry

FileSystemEntry 接口是文件和目录条目 API (File and Directory Entries API) 的一部分,它代表文件系统中的单个条目。该条目可以是文件或目录(目录由 FileSystemDirectoryEntry 接口表示)。它包含用于处理文件的各种方法—包括复制、移动、删除和读取文件—以及有关其指向的文件信息—包括文件名及其从根目录到该条目的路径。

基本概念

您不能直接创建 FileSystemEntry 对象。而是通过其他 API 接收基于此接口的对象。此接口作为 FileSystemFileEntryFileSystemDirectoryEntry 接口的基类,它们分别提供了代表文件和目录的文件系统条目的特定功能。

FileSystemEntry 接口包含了您期望的用于操作文件和目录的方法,但它还包含一个方便获取条目 URL 的方法:toURL()。它还引入了一个新的 URL 方案:filesystem:

您可以在 Google Chrome 中使用 filesystem: 方案来查看存储在您应用程序源中的所有文件和文件夹。只需为应用程序源的根目录使用 filesystem: 方案即可。例如,如果您的应用程序位于 http://www.example.com,请在标签页中打开 filesystem:http://www.example.com/temporary/。Chrome 会显示一个只读列表,其中包含您应用程序源中存储的所有文件和文件夹。

示例

要查看 toURL() 工作原理的示例,请参阅方法说明。下面的代码片段展示了如何按名称删除文件。

js
// Taking care of the browser-specific prefixes.
window.requestFileSystem =
  window.requestFileSystem || window.webkitRequestFileSystem;

// …

// Opening a file system with temporary storage
window.requestFileSystem(
  TEMPORARY,
  1024 * 1024 /* 1MB */,
  (fs) => {
    fs.root.getFile(
      "log.txt",
      {},
      (fileEntry) => {
        fileEntry.remove(() => {
          console.log("File removed.");
        }, onError);
      },
      onError,
    );
  },
  onError,
);

实例属性

此接口提供了以下属性。

filesystem 只读

一个 FileSystem 对象,表示条目所在的文件系统。

fullPath 只读

一个字符串,提供从文件系统的根目录到该条目的完整绝对路径;也可以将其视为相对于根目录的路径,前面加上 "/" 字符。

isDirectory 只读

一个布尔值,如果条目表示一个目录,则为 true;否则为 false

isFile 只读

一个布尔值,如果条目表示一个文件,则为 true。如果不是文件,则此值为 false

name 只读

一个字符串,包含条目的名称(路径的最后一部分,在最后一个 "/" 字符之后)。

实例方法

此接口定义了以下方法。

copyTo() 已弃用 非标准

将文件或目录复制到文件系统中的新位置。

getMetadata() 已弃用 非标准

获取关于文件的元数据,例如其修改日期和大小。

getParent()

返回一个 FileSystemDirectoryEntry 对象,表示该条目的父目录。

moveTo() 已弃用 非标准

将文件或目录移动到文件系统中的新位置,或重命名文件或目录。

remove() 已弃用 非标准

删除指定的文件或目录。您只能删除空目录。

toURL() 已弃用 非标准

创建并返回一个标识该条目的 URL。此 URL 使用 URL 方案 "filesystem:"

规范

规范
File and Directory Entries API
# api-entry

浏览器兼容性

另见