在tizen中创建文件

时间:2012-08-16 11:28:19

标签: tizen

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

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

但它的错误就像

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

我尝试了Tizen文档中给出的相同示例。请提出一个想法

5 个答案:

答案 0 :(得分:4)

只需声明dir

var dir = tizen.filesystem;

答案 1 :(得分: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"
     );

答案 2 :(得分:2)

首先,您需要在config.xml中使用2个特权来写入文件:
<tizen:privilege name="http://tizen.org/privilege/filesystem.write"/> <tizen:privilege name="http://tizen.org/privilege/filesystem.read"/>
可以手动添加,也可以使用“previlages”选项卡添加。 在那之后,你shpuld使用Filesystem API methods - 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 /

中找到您的文件夹

答案 3 :(得分:2)

这是您在tizen Web应用程序中添加文件的方式:

创建文件:

  

在相对于目录的指定位置创建一个空的新文件。   &#34;文件createFile(DOMString relativeFilePath);&#34;

示例:

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

答案 4 :(得分:2)

您需要使用目录对象从tizen.filesystem.resolve API解析文件或目录对象。

在你的代码中你的dir对象只包含空字符串。

所以,首先从tizen.filesystem.resolve API获取File(file&amp; 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参考的有用教程和示例代码。

FileSystem教程 https://developer.tizen.org/development/tutorials/web-application/tizen-features/base/filesystem#create

Filesystem 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