0

作業中のTizen Webアプリで次のコードを実行しています

tizen.filesystem.resolve('.',
function (dir) {
    dir.listFiles(
        function (files) {
            for (var i = 0; i < files.length; ++i)
                console.log('File : ' + files[i].name + '\nURL : ' + files[i].toURI() + '\n========');
            } )
},
function (err) { console.log('Error : ' + err.message); window.__error = err },
'r')

...そして、コンソールに次のように表示されます

null
VM569:10 Error : The content of an object does not include valid values.

私の質問は、上記のコード スニペットの何が問題なのですか? Tizen ファイルシステム API を呼び出すにはどうすればよいですか?

前もって感謝します 。

4

2 に答える 2

1

tizen.filesystem.resolve('.'

上記では、.必要のない (root?) サポートを解決しようとしていますが、おそらくアクセス権がありません。

VM569:10 エラー : オブジェクトの内容に有効な値が含まれていません。

これは、ドキュメントからの私の観察も確認します。

ErrorCallback は、次のエラー タイプで起動されます。

  • InvalidValuesError - 入力パラメーターのいずれかに無効な値が含まれている場合。たとえば、読み取り専用の仮想ルート (wgt-package および ringtones) のモードは「w」です。

サポートされている場所のいずれかを使用してみてください。

準拠した実装でサポートする必要があるルートの場所のリストは次のとおりです。

  • documents - テキスト ドキュメント (pdf、doc など) がデフォルトでデバイスに保存されるデフォルト フォルダ。たとえば、一部のプラットフォームでは、「マイ ドキュメント」フォルダに対応しています。
  • images - 写真などの静止画像 (jpg、gif、png などの形式) がデフォルトでデバイスに保存されるデフォルトのフォルダー。たとえば、一部のプラットフォームでは、「My Images」フォルダに対応しています。
  • music - サウンド クリップ (mp3、aac などの形式) が既定でデバイスに保存される既定のフォルダー。たとえば、一部のプラットフォームでは、「My Music」フォルダに対応しています。
  • ビデオ- ビデオ クリップ (avi、mp4 などの形式) がデフォルトでデバイスに保存されるデフォルト フォルダ。たとえば、一部のプラットフォームでは、「マイ ビデオ」フォルダに対応しています。
  • ダウンロード- (ブラウザ、電子メール クライアントなどのソースから) ダウンロードされたファイルがデフォルトでデバイスに保存されるデフォルト フォルダ。たとえば、一部のプラットフォームでは、「ダウンロード」フォルダーに対応します。着信音: 着信音 (mp3 など) がデバイスに保存されるデフォルトのフォルダー。camera : デバイスで撮影した写真とビデオが保存される既定のフォルダー。
  • wgt-package - ウィジェット ファイルのコンテンツが抽出される読み取り専用フォルダー。
  • wgt-private - ウィジェットがその情報を保存するプライベート フォルダー。このフォルダーは、同じウィジェットのみがアクセスできるようにする必要があり、他のウィジェットまたはアプリケーションが保存された情報にアクセスできないようにする必要があります。
  • wgt-private-tmp - ウィジェットの実行サイクル中に利用可能なデータをウィジェットが保存できる一時的なプライベート フォルダー。このフォルダのコンテンツは、ウィジェットを閉じるか、Web ランタイムを再起動すると、このディレクトリから削除できます。このフォルダーは、同じウィジェットのみがアクセスできる必要があり、他のウィジェットまたはアプリケーションがアクセスできないようにする必要があります。

API refのサンプル コードを参照してください。サイト:

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"
);
于 2016-03-01T13:43:22.033 に答える
0

下記の FileSystem チュートリアルと API リファレンスを参照してください。

ファイルシステムのチュートリアルhttps://developer.tizen.org/development/tutorials/web-application/tizen-features/base/filesystem#retrieve

ファイルシステム API リファレンスhttps://developer.tizen.org/dev-guide/latest/org.tizen.web.apireference/html/device_api/mobile/tizen/filesystem.html#FileSystemManager::resolve

テキスト ファイルを /project_root/data/text/x.txt に置く場合。そのファイルには、webapi の「wgt-package/data/text/x.txt」パスでアクセスできます。

以下は簡単なサンプルコードです。それを試してみてください。

function onsuccess(files) {
   for (var i = 0; i < files.length; i++) {
     console.log("File Name is " + files[i].name); // displays file name

     if(file[i].name = "your_txt_file.txt"){
        //do something here. file[i].readAsText(....)
     }
   }
 }

 function onerror(error) {
   console.log("The error " + error.message + " occurred when listing the files in the selected folder");
 }

 tizen.filesystem.resolve(
     "wgt-package/data/text",
     function(dir) {
       documentsDir = dir; dir.listFiles(onsuccess,onerror);
     }, function(e) {
       console.log("Error" + e.message);
     }, "rw"
 );
于 2016-03-15T06:03:37.437 に答える