我正在测试一些新的JS文件系统功能,即在本地文件系统中创建一个空文本文件。我正在从本地路径(file:///)运行HTML和JS文件。为此,我使用CLI中的--allow-file-access-from-files标志启动了Google Chrome浏览器。文件系统请求为PERSISTENT(并且有效)。

我阅读了有关文件系统的不同文章,复制并修改了教程中的一些代码;启动HTML文件时,我的自定义成功/失败消息会在控制台中输出;

结果如下:

Opened file system:/   // this is the root path of the JS Filesystem.

/wtf.txt  // this is the name and path of the text file I created+ it's a success


但是,当我查看目录的目录(系统目录和应用程序根目录)时,没有.txt文件使用我为其分配的名称。我怎么知道Javascript真正在哪里写了这个文件?在哪个“根”中(因为不能分配“根”)? FileSystem是一个“沙盒”是什么意思?我无法在本地驱动器上访问它的(虚拟?)内容,而只能使用JS?如果是这种情况,是否可以提示用户保存文件?

预先感谢您的回答

最佳答案

您似乎希望文件系统API在本地工作,类似于OS文件系统。客户不是那样工作的。实际上,API和API的设计目的是作为您作为程序员与文件和目录的接口—客户端本身(例如Chrome等)将在本地一级处理其余部分。该API并非设计用于通过浏览器创建文件并通过操作系统轻松访问该文件。

我怎么知道Javascript真正在哪里写了这个文件?在哪个“根”中(因为不能分配“根”)?

从技术上讲,每个客户都可以选择本地存储。因此,尽管您可以转到本地文件系统中查找文件,但是如果尝试这样做,您的方法就会出现问题。文件系统API并非用于此目的。对于您的问题,您可以假设如果客户端存储区中有内容(例如,对于Chrome,则类似于“ C:\ Users \ USERNAME \ AppData \ Local \ Google \ Chrome \ User Data \ Default \ File System \”)您可以假定是JavaScript编写的。但同样,它并未设置为在本地系统上进行用户友好的浏览。

FileSystem是一个“沙盒”是什么意思?

沙箱仅表示为特定目的而创建和预留的区域,客户端无法看到/访问该区域。从Mozilla看到此内容:https://developer.mozilla.org/en-US/docs/WebGuide/API/File_System/Introduction#virtual

我无法在本地驱动器上访问它的(虚拟?)内容,而只能使用JS?

是正确的,并且是设计使然。

如果是这种情况,是否可以提示用户保存文件?

如果我对您的问题理解正确,那么您在问是否有一种方法可以向用户提供特定文件,并提示用户将其保存在本地。好吧,当然,如果您提供该文件的链接(或将其推送,进行其他讨论),那么如果平台允许,客户端将提示用户保存/存储该文件。但是您无法控制它们在本地保存的位置,也无法稍后再获取它。如果我误解了您的问题,请在下面评论,然后我会继续进行。

关于javascript - JS Filesystem API:在本地系统上访问JS FileEntry?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18288795/

10-09 17:44
查看更多