此时,我们会调用 FileEntry 的 createWriter()
方法获取 FileWriter
对象。在成功回调中为error
事件和 writeend
事件设置事件处理程序。
通过以下操作将文字数据写入文件:创建 Blob,向 Blob 附加文字,然后将 Blob 传递到FileWriter.write()
。向文件附加文字以下代码会将“Hello World”
文字附加到日志文件结尾。
如果该文件不存在,系统将引发错误。
以下代码可让用户使用 <input type="file" multiple />
选择多个文件,并在应用的沙盒文件系统中复制这些文件。
虽然我们通过输入导入文件,您也可以使用 HTML5 拖放功能轻松实现相同的目标。
正如评论中所说的,FileWriter.write()
可接受 Blob
或 File
。这是因为 File
继承自 Blob
,所以文件对象也是 Blob。
以下代码会删除“log.txt”文件。
沙盒中的目录通过 DirectoryEntry
接口表示,该接口共享了 FileEntry 的大部分属性(继承自常用 Entry
接口)。不过,DirectoryEntry
还可使用其他方法处理目录。
DirectoryEntry
的属性和方法:
使用 DirectoryEntry
的 getDirectory()
方法读取或创建目录。您可以递交名称或路径作为查找或创建所用的目录。
例如,以下代码会在根目录中创建名为“MyPictures”的目录:
创建子目录的方法与创建其他任何目录的方法完全相同。不过,如果您尝试创建其直接父目录不存在的目录,
API 将引发错误。相应的解决方法是,依次创建各级目录,而这对异步 API 而言非常麻烦。
以下代码会在系统创建父文件夹后以递归方式添加各个子文件夹,从而在应用相应 FileSystem 的根中创建新的层次结构 (music/genres/jazz)。
在“music/genres/jazz”处于合适的位置后,我们就可以将完整路径传递到 getDirectory()
,然后在其下方创建新的子文件夹。例如:
window.requestFileSystem(window.TEMPORARY, 1024*1024, function(fs) {
fs.root.getFile(‘/music/genres/jazz/song.mp3‘, {create: true}, function(fileEntry) {
...
}, errorHandler);
}, errorHandler);
原文:http://www.cnblogs.com/zhaoq/p/5060951.html