FileException

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

在 文件系统 API 中, FileException 表示错误条件,你可能在使用同步 API 访问文件系统时遇到。它扩展了 FileException 接口,在 File Writer 中描述,并添加了几个新的错误代码。

基本概念

同步 API 没有错误回调,这使其难以捕获错误。和这个 API 一起使用 WebWorkers 的额外复杂性,使得调试更具有挑战性。为了使事情简化,将你的工作器代码包在 try/catch 里面。当错误发生时,使用 postMessage() 将它们转发给主应用,像这样:

function onError(e) {
  postMessage('ERROR:' + e.toString());
}

try {
  //Error is thrown if "log.txt" already exists.
var fileEntry = fs.root.getFile('log.txt', {create: true, exclusive:true}0;
} catch (e) {
  onErrror(e);
} 

示例代码取自 HTML5Rocks

属性

Attribute Type Description
code unsigned short 用于该条件的最合适的错误代码。

常量

null

常量 描述
ENCODING_ERR 5 URL 格式错误。确保 URL 是完整和有效的。
INVALID_MODIFICATION_ERR 9 请求的改动是不允许的。无效改动包括将目录移动到它的子目录中,或者将文件移动到它的父目录中,而没有修改它的名称。
INVALID_STATE_ERR 7 在接口对象的当前状态上,不能执行操作。例如,缓存在接口对象中的状态,自从上次从磁盘读取之后发生改变。
NO_MODIFICATION_ALLOWED_ERR 6 底层文件系统的状态阻止任何文件或者目录的写入。
NOT_FOUND_ERR 1 在操作执行时,所需文件或者目录无法找到。例如,打开了不存在的文件。
NOT_READABLE_ERR 4

文件或者目录不能读取,通常由于权限问题,出现在获取文件引用之后(例如,文件或者目录当前由另一个应用锁住)。

PATH_EXISTS_ERR 12 路径相同的文件或者目录已存在。
QUOTA_EXCEEDED_ERR 10

没有足够的剩余空间,或者存储器配额已达到,并且用户拒绝向数据库提供更多空间。

SECURITY_ERR 2

拒绝文件访问,由于下列原因之一:

  • 在 Web 应用中访问文件是不安全的。
  • 文件资源上有过多调用。
  • 其它未规定的安全错误代码或情况。
TYPE_MISMATCH_ERR 11 用户尝试检索文件或者目录,但是找到的条目类型错误。例如,应用正在访问 DirectoryEntry ,当用户请求 FileEntry 的时候。

浏览器兼容性

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! (en-US)
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 13webkit (en-US) 未实现 未实现 未实现 未实现
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Basic support 未实现 0.16 webkit (en-US) 未实现 未实现 未实现 未实现

另见

规范:文件 API:目录和系统规范WD

参考:文件系统 API

简介:文件系统 API 的基本概念