chrome.fileSystem 在 google Native Client 中可用吗
Is chrome.fileSystem usable inside google Native Client
是否可以在NaCl
中使用chrome.fileSystem
?
谢谢
The chrome.fileSystem API 允许您通过 Chrome 应用程序访问用户的本地文件系统。这需要用户选择一个目录以向应用公开。
此文件系统可以传递给 NaCl 模块,然后与标准 NaCl 一起使用 pp::FileSystem API.
在 examples/tutorial/filesystem_passing
的 NaCl SDK 中有一个这样的例子。您可以浏览它的代码 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";
请务必注意,此文件系统中的所有路径都必须以 full_path 为前缀。任何其他访问都将失败。
是否可以在NaCl
中使用chrome.fileSystem
?
谢谢
The chrome.fileSystem API 允许您通过 Chrome 应用程序访问用户的本地文件系统。这需要用户选择一个目录以向应用公开。
此文件系统可以传递给 NaCl 模块,然后与标准 NaCl 一起使用 pp::FileSystem API.
在 examples/tutorial/filesystem_passing
的 NaCl SDK 中有一个这样的例子。您可以浏览它的代码 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";
请务必注意,此文件系统中的所有路径都必须以 full_path 为前缀。任何其他访问都将失败。