2012-08-16 50 views
3

創建文件我試圖創建tizen新文件。我的代碼是在tizen

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

但它越來越錯誤,如

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

我已經試過這是Tizen文檔中給出了同樣的例子。請給一個想法

回答

2

因爲在你的代碼中,你幾乎宣告未定義dir的變量,你得到這個錯誤,因爲dirundefinedvar dir;的。

如果檢查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。決心之稱。

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" 
    ); 
4

只是聲明dir像這樣:

var dir = tizen.filesystem; 
2

首先,你需要在config.xml中2周的privilages寫入文件:
<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 /媒體/圖片/

+0

電源特權? – veritas 2014-11-21 07:17:06

+1

@veritas,當然你是對的。已經修復。 – Ender 2014-11-21 07:43:40

2

這是你如何在tizen Web應用程序添加一個文件:

創建一個文件:

創建的,是相對於目錄中的指定位置的空新的文件。 「文件的CreateFile(DOMString relativeFilePath);」

例子:

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

2

您需要解決從tizen.filesystem.resolve API文件或目錄對象befor使用目錄對象。

在你的代碼的目錄對象只包含空字符串。

因此,首先從tizen.filesystem.resolve API獲取文件(文件& 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