Google chrome Chrome应用程序创建并写入文件

Google chrome Chrome应用程序创建并写入文件,google-chrome,google-chrome-app,Google Chrome,Google Chrome App,我正在尝试将chrome.apps用于需要写入多个单独的数据日志文件的程序。然后,用户需要能够在其文件系统的应用程序外部访问这些日志文件,以便进行后期处理 这将需要做很多次,以便生成文件时需要最少甚至没有用户交互。虽然这在任何本地程序代码中都很简单,但我发现在chrome应用程序中很难做到这一点。 例如,我是否可以使用chrome应用程序创建“log_file.txt”和“log_file2.txt”,而无需用户交互? 有没有办法让用户只指定一个目录,然后从我的应用程序中,我就可以在该目录中创建

我正在尝试将chrome.apps用于需要写入多个单独的数据日志文件的程序。然后,用户需要能够在其文件系统的应用程序外部访问这些日志文件,以便进行后期处理

这将需要做很多次,以便生成文件时需要最少甚至没有用户交互。虽然这在任何本地程序代码中都很简单,但我发现在chrome应用程序中很难做到这一点。 例如,我是否可以使用chrome应用程序创建“log_file.txt”和“log_file2.txt”,而无需用户交互? 有没有办法让用户只指定一个目录,然后从我的应用程序中,我就可以在该目录中创建多个文件而无需用户交互? 我曾尝试在代码中这样做,但我需要chrome.filesystem的“条目”句柄。“getEntry”方法需要一个“entry”,因此似乎不可能创建新的“entry”,以便我可以写入新文件。 任何想法都将不胜感激

是否有任何方法可以让用户只指定一个目录,然后从我的应用程序中,我就可以在该目录中创建多个文件,而无需用户交互

对。您需要请求一个带有

chrome.fileSystem.chooseEntry({type: "openDirectory"}, /*...*/);
只要你有权限

{"fileSystem": ["write", "retainEntries", "directory"]} 
您将能够在该目录中创建文件,并“保留”(保存)目录条目以供以后重用,而无需再次询问用户。拥有DirectoryEntry后创建文件应类似于


但需要最少的交互(最初请求文件夹)。

但目录句柄无法创建文件系统对象。要通过ChromeAPI获取文件系统对象,必须使用chrome.requestFileSystem。这需要提供卷ID的选项。我认为没有办法从目录句柄转换到卷ID。此外,大多数操作系统似乎不支持getVolumeList。DirectoryEntry有一个方法可以用来创建文件。你不需要创建一个文件系统——考虑到我链接的HTML5ROCK文章,你可以直接得到<代码> FS。ROOT 直接。嘿,Xan,对不起,意外地点击回车键太快了,请看我编辑过的评论。你不需要!您需要调用
chooseEntry
一次,获取一个
DirectoryEntry
,确保保留并使用它。非常感谢,使用目录项的.getFile方法已奏效。:)欢迎来到堆栈溢出!我看到你编辑了你的问题(这很好),只是为了添加解决方案,而不是。Stack Overflow是一个问答网站。如果你自己的答案实质上来源于你接受的答案,你可以将其作为单独的答案发布。