Возможно ли использовать chrome.fileSystem
внутри NaCl
?Is chrome.fileСистема, используемая внутри Google Собственный клиент
Благодаря
Возможно ли использовать chrome.fileSystem
внутри NaCl
?Is chrome.fileСистема, используемая внутри Google Собственный клиент
Благодаря
The chrome.fileSystem API позволяет получить доступ к локальной файловой системе пользователя с помощью Chrome App. Это требует от пользователя выбора каталога для раскрытия приложения.
Эта файловая система может быть передана в модуль NaCl, а затем использована со стандартным API NaCl pp::FileSystem.
Существует пример этого в SDK NaCl по адресу examples/tutorial/filesystem_passing
. Вы можете просмотреть код для него here.
Вот важные части: JavaScript:
chrome.fileSystem.chooseEntry({type: 'openDirectory'}, function(entry) {
if (!entry) {
// The user cancelled the dialog.
return;
}
// Send the filesystem and the directory path to the NaCl module.
common.naclModule.postMessage({
filesystem: entry.filesystem,
fullPath: entry.fullPath
});
});
C++:
// Got a message from JavaScript. We're assuming it is a dictionary with
// two elements:
// {
// filesystem: <A Filesystem var>,
// fullPath: <A string>
// }
pp::VarDictionary var_dict(var_message);
pp::Resource filesystem_resource = var_dict.Get("filesystem").AsResource();
pp::FileSystem filesystem(filesystem_resource);
std::string full_path = var_dict.Get("fullPath").AsString();
std::string save_path = full_path + "/hello_from_nacl.txt";
std::string contents = "Hello, from Native Client!\n";
Важно отметить, что все пути в этом FileSystem должны начинаться с префикса Полный_путь. Любые другие обращения не удастся.
Мое предположение «вероятно, нет», но, увидев, что вы можете получить доступ к файловой системе HTML5, вы могли бы в худшем случае скопировать туда, чтобы работать с ней. Но я не знаю эту тему достаточно хорошо. – Xan
@Xan благодарит за ваш комментарий! – KaBa