TIZENアーキテクチャを使用してSAMSUNGディスプレイ用のWebアプリケーションを開発しています。私はファイルシステムAPIを実装しましたが、今は私が理解できない問題に悩まされており、ドキュメンタントは..まばらです。ディレクトリがFileオブジェクト(TIZENファイルシステムAPI)に解決する
現在、アプリケーションはwgt-private/data /を持つようにwgt-privateにデータフォルダを作成します。しかし、このパスを解決しようとすると、Fileオブジェクトは、Fileオブジェクトを受け取るので、FileオブジェクトはDirectoryオブジェクトと同じようにcreateFile()メソッドを提供しないため、ファイルを作成できません。
ディレクトリを作成するコード。遅延機能とコールバックが実装されていますが、これは冗長ですが、このスレッドでは無視できます。エッセンシャルは、主にファイルシステムAPIからオブジェクトを取得TIZENの解決機能、の最初の成功-コールバックです:
tizen.filesystem.resolve(
homePath,
function (obj) {
var exceptionThrown = false;
try {
var newDir = obj.createDirectory(path);
} catch (e){
Logger.debug("[DIRECTORY] Could not create directory:");
Logger.debug(e.message);
Logger.debug(e);
exceptionThrown = true;
}
// check if an exception occurred
if (exceptionThrown == true) {
dfd.resolve();
if (failure_cb != null && typeof(failure_cb) === 'function'){
failure_cb(path);
}
} else {
dfd.resolve();
if (success_cb != null && typeof(success_cb) === 'function'){
self.exists(path, success_cb, failure_cb)
}
}
},
function (e) {
Logger.debug("[DIRECTORY] Attempted to create directory, but could not resolve location due to error:");
dfd.resolve();
Logger.debug(e);
if (failure_cb != null && typeof(failure_cb) === 'function'){
failure_cb(path);
}
}
);
これは、Directoryオブジェクトを取得してのCreateFileを呼び出すことによって、ファイルを作成するための呼び出しです。ここでも、無視できる遅延の解決とコールバックがあります。
tizen.filesystem.resolve(
'wgt-private/data',
function (obj) {
try {
Logger.debug(obj);
obj.createFile(filename); // create file at location
} catch (e) {
Logger.debug("[FILE] Exception caught while attempting to create file " + path);
Logger.debug(e.message);
Logger.debug(e);
}
self.exists(path, success_cb, failure_cb); // if exists --> success
},
function (err) {
Logger.error("[FILE] Could not create file!");
Logger.error(err);
// couldn't create file - failure-callback
if (failure_cb != null && typeof(failure_cb) === 'function'){
failure_cb(path);
}
},
"rw"
);
:エッセンシャルはWGT-プライベート/データを解決することは私にDirectoryオブジェクトを与えるべきであるということですが、代わりに、私はFileオブジェクトを受け取る(私は、具体的な成功コールバックが/データを作成するために呼ばれ、それがcreateDirectoryを使用して作成されていることを確認しました)
私はこの動作を理解していません。私はちょうどこの同じ方法でちょうどwgt-privateを解決できますが、サブパスを解決すると私はファイルを解決しています。誰かが私が間違っていることを見ていますか?
、 obj.createDirectory() は、ファイルを作成します。これらは、Directoryオブジェクトの obj.listFiles() を呼び出すときにもリストされます。これはどのように可能ですか? – KVNSTOBJEKT
だから私はこれをコンソールを使って手作業でもう一度テストし、手動でディレクトリを作成しました。このディレクトリはlistFilesにもリストされていますが、私には分かりません。 – KVNSTOBJEKT
ドキュメントで言うように、listFilesはFileオブジェクト(明らかにディレクトリもTIZEN内にあります)を返します。しかし、これは変更されていませんが、TIZENはファイルであると私が判断したディレクトリを考慮しています。 IOError:このメソッドを呼び出すファイルオブジェクトはディレクトリではありません – KVNSTOBJEKT