時計用に定義されたデータベース (IDBStore) があります。そのデータをファイルに書き込んでデータベースをクリアしようとしています。以下のコードを参照してください。
function writeDataLocally() {
var database = getDatabase();
var onsuccess = function(array){
var documentsDir, newFile;
tizen.filesystem.resolve("documents", onResolve, function(error) {
console.log("Could not resolve documents folder.");
console.log(error);
});
function onResolve(result) {
newFilePath = "MyFolder";
documentsDir = result;
var newDir = documentsDir.createDirectory(newFilePath);
console.log("New folder is created.");
/* ^^^^^ I can see this log ^^^^^ */
newFile = documentsDir.createFile(newFilePath + "/sensordata_" + new TimeStamp() + ".txt");
/* But the following log is not displayed! */
/* I think the error now is in here! */
console.log("New file is created.");
}
if(newFile != null) {
newFile.openStream("w", onOpenStream, function(error) {
console.log("Could not create the file.");
console(error);
}, "UTF-8");
function onOpenStream(fs) {
console.log(JSON.stringify(array));
fs.write(JSON.stringify(array));
fs.close();
console.log("Data is written into the file.");
}
}
},
onerror = function(error){
console.log(error);
};
database.getAll(onsuccess, onerror);
}
必要なディレクトリを作成できないというログが表示されません。この単純な関数のバグを確認できますか? 基本かもしれませんが、tizenは初めてです。ありがとう。
更新
これで、次のコードを使用して好きな方法でフォルダーとファイルを作成できるようになりました。
function writeDataLocally() {
var database = getDatabase();
var onsuccess = function(array){
var documentsDir, newFile;
tizen.filesystem.resolve("documents", onResolve, function(error) {
console.log("Could not resolve documents folder.");
console.log(error);
});
function onResolve(result) {
newFilePath = "MyFolder";
documentsDir = result;
var newDir = documentsDir.createDirectory(newFilePath);
console.log("New folder is created.");
d = new Date();
newFile = newDir.createFile("sensordata_" + d.toDateString() + ".txt");
console.log("New file is created.");
if(newFile != null) {
newFile.openStream("w", onOpenStream, function(error) {
console.log("Could not create the file.");
console(error);
}, "UTF-8");
function onOpenStream(fs) {
console.log("File is opened and ready to write...");
fs.write(JSON.stringify(array));
fs.close();
newFile = null;
console.log("Data is written into the file");
};
}
},
onerror = function(error){
console.log(error);
};
database.getAll(onsuccess, onerror);
}
newDir
と 'newFile`の変更を参照してください。しかし、現在の状況は次のとおりです。
フォルダーが存在する場合、何も起こりません。デバイスからmyFolderを削除すると、ファイルとフォルダーの両方が作成され、データがファイルに書き込まれますが、これは初回のみです。デバイスにmyFolder
フォルダー
が既に存在する場合、そのディレクトリに他のファイルは作成されません。提案?