我正在尝试在 tizen 中创建新文件。我的代码是
var dir;
var newDir = dir.createDirectory("vij");
但它越来越像错误
TypeError: 'undefined' is not an object (evaluating 'dir.createDirectory')
我尝试了 Tizen 文档中给出的相同示例。请给个思路
我正在尝试在 tizen 中创建新文件。我的代码是
var dir;
var newDir = dir.createDirectory("vij");
但它越来越像错误
TypeError: 'undefined' is not an object (evaluating 'dir.createDirectory')
我尝试了 Tizen 文档中给出的相同示例。请给个思路
dir
像这样声明:
var dir = tizen.filesystem;
因为var dir;
在您的代码中,您实际上声明了一个未定义的dir
变量,您会收到该错误,因为dir
将是undefined
.
如果您检查文档中的 API,这是执行此操作的方法:
var documentsDir;
function onsuccess(files) {
for(var i = 0; i < files.length; i++) {
console.log("File Name is " + files[i].name); // displays file name
}
var testFile = documentsDir.createFile("test.txt");
if (testFile != null) {
testFile.openStream(
"w",
function(fs){
fs.write("HelloWorld");
fs.close();
}, function(e){
console.log("Error " + e.message);
}, "UTF-8"
);
}
}
function onerror(error) {
console.log("The error " + error.message + " occurred when listing the files in the selected folder");
}
tizen.filesystem.resolve(
'documents',
function(dir){
documentsDir = dir; dir.listFiles(onsuccess,onerror);
}, function(e) {
console.log("Error" + e.message);
}, "rw"
);
您在文档中找到的以下两个示例在上面的上下文中是有意义的,即调用了 tizen.filesystem.resolve。
var newDir = dir.createDirectory("newDir");
var anotherNewDir = dir.createDirectory("newDir1/subNewDir1");
所以如果你想创建一个文件,你执行上面的代码(完全是第一个)如果文件是在 listFiles 的 onsuccess 回调中创建的,如果你想创建一个目录,你需要这样做:
tizen.filesystem.resolve(
'documents',
function(dir){
var newDir = dir.createDirectory("vij");
}, function(e){
console.log("Error" + e.message);
}, "rw"
);
首先,您需要 config.xml 中的 2 个权限来写入文件:
<tizen:privilege name="http://tizen.org/privilege/filesystem.write"/>
<tizen:privilege name="http://tizen.org/privilege/filesystem.read"/>
可以手动添加,或者使用“previlages”选项卡。之后,您应该使用文件系统 API 方法 - createDirectory
tizen.filesystem.resolve(
'images',
function(dir) {
var dir; //Directory object obtained from filesystem API
var newDir = dir.createDirectory("newDir");
console.log("Mount point Name is " + dir.path);
}, function(e) {
console.log("Error: " + e.message);
}, "rw"
);
结果,您的文件夹将位于 /opt/usr/media/Images/
这是在 tizen Web 应用程序中添加文件的方式:
创建文件:
在相对于目录的指定位置创建一个空的新文件。“文件创建文件(DOMString 相对文件路径);”
例子:
tizen.filesystem.resolve(
absolute_path,
function(dir){
dir.createFile(<filename>);
}, function(e) {
console.log("Error" + e.message);
}, "rw"
);
更多信息可以在下面的链接中找到:http: //howdoudoittheeasiestway.blogspot.in/2015/02/writing-and-reading-from-file-system.html
在使用目录对象之前,您需要从 tizen.filesystem.resolve API 解析文件或目录对象。
在您的代码中,您的 dir 对象仅包含空字符串。
因此,首先从 tizen.filesystem.resolve API 获取 File(file&dir) 对象。
下面是 tizen.filesystem.resolve api,您可以在 FileSuccessCallback onsuccess 方法上获取文件对象。
void resolve(DOMString location, FileSuccessCallback onsuccess, optional ErrorCallback? onerror, optional FileMode? mode);
像下面的代码。
tizen.filesystem.resolve(
'images',
function(dir) {
//do something what you want
console.log("Mount point Name is " + dir.path);
}, function(e) {
console.log("Error: " + e.message);
}, "r"
);
API 参考上有有用的教程和示例代码。
下面是虚拟根表
images - the location for images
videos - the location for videos
music - the location for sounds
documents - the location for documents
downloads - the location for downloaded items
ringtones - the location for ringtones (read-only location)
camera - the location for the pictures and videos taken by a device (supported since Tizen 2.3)
wgt-package - the location for widget package which is read-only
wgt-private - the location for a widget's private storage
wgt-private-tmp - the location for a widget's private volatile storage