在Chrome应用程序中删除文件后访问fileEntry
Access fileEntry after dropping a file in a Chrome App
是否可以通过拖放打开文件在Chrome应用程序中获得fileEntry
对象?当我把一个文件放入我的应用程序时,我只得到一个file
对象,这似乎与文件系统无关。修改文件后,我不能使用该对象保存文件。
我得到这样的文件:
document.body.addEventListener('drop', function (event) {
file = event.dataTransfer.files[0]
});
我想做什么
我正在开发一个文本编辑器,我想添加一个功能,通过拖动它到我的应用程序打开一个文件。
正如我所说:我已经得到了文件的内容,但我不能把更改写回文件,因为我需要一个fileEntry
对象,以便这样做。
好的,我只是在检查event
对象时发现了它。在事件对象中有一个名为webkitGetAsEntry()
的函数来获取fileEntry
对象。下面是正确的代码:
document.body.addEventListener('drop', function (event) {
fileEntry = event.dataTransfer.items[0].webkitGetAsEntry();
});
这个对象可以用来将更改写回文件系统。
参考代码:// Of course this needs the "fileSystem" permission.
// Dropped files from the file system aren't writable by default.
// So we need to make it writable first.
chrome.fileSystem.getWritableEntry(fileEntry, function (writableEntry) {
writableEntry.createWriter(function (writer) {
// Here use `writer.write(blob)` to write changes to the file system.
// Very important detail when you write files:
// https://developer.chrome.com/apps/app_codelab_filesystem
// look for the part that reads `if (!truncated)`
// This also is very hard to find and causes an annoying error
// when you don't know how to correctly truncate files
// while writing content to the files...
});
});
相关文章:
- 访问布局信息是否也会导致浏览器重排
- Javascript,访问一个主要对象模块模式中的每个对象
- 如何访问声音管理器2创建的声音对象
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 如何访问fastOpt.js
- 访问JSON对象内部的数组元素
- 从模块内部访问Express装载路径
- 难以访问的JS环境中的语法错误
- 如何从对象的原型方法访问JavaScript对象属性
- 访问json数组中的对象
- 通过javascript/html访问twitter共享iframe
- Dojo:访问dijit.form.Select中单击的项目
- 为什么在这个网站上不能通过JS访问元素
- 从ng模板访问作用域
- 如何访问UIWebView'的子窗口上下文
- 使用Javascript获取Twitter访问令牌
- 在Chrome应用程序中删除文件后访问fileEntry