3

我正在尝试在 tizen 中创建新文件。我的代码是

var dir;
var newDir = dir.createDirectory("vij");

但它越来越像错误

TypeError: 'undefined' is not an object (evaluating 'dir.createDirectory')

我尝试了 Tizen 文档中给出的相同示例。请给个思路

4

5 回答 5

4

dir像这样声明:

var dir = tizen.filesystem;
于 2013-07-24T13:40:01.270 回答
2

因为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"
     );
于 2012-08-28T13:10:55.143 回答
2

首先,您需要 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/

于 2014-11-20T21:41:19.277 回答
2

这是在 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

于 2015-07-01T08:54:41.530 回答
2

在使用目录对象之前,您需要从 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 参考上有有用的教程和示例代码。

文件系统教程 https://developer.tizen.org/development/tutorials/web-application/tizen-features/base/filesystem#create

文件系统 API 参考 https://developer.tizen.org/dev-guide/latest/org.tizen.web.apireference/html/device_api/mobile/tizen/filesystem.html

下面是虚拟根表

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
于 2016-02-24T02:02:18.570 回答