iOSでiTunes等の経由でファイルの取込を行い、編集し、再度吐出すことのできるアプリを作成しています。環境はMonacaでJavaScriptを利用して書いています。
現在、PCからiTunesを使ってiPadのDocumentsにファイルを同期し、アプリでそれを読み取ってDBへ書込、そのデータから別のファイルを作成、書出を行うところまでは出来たのですが、
それをDocuments等で確認しようとした際、どうしても見つけることが出来ません。
保存場所については、Monacaの「ファイル操作プラグイン」で調べたものを試していたのですが、単純に保存場所を指定してその場所にファイルを作成するだけではだめなのでしょうか?
以下は該当の場所のプログラムです。
function wrtFile(){ var bom = new Uint8Array([0xEF, 0xBB, 0xBF]); var content = ''; /*--contentの内容記述--*/ var blob = new Blob([ bom, content ], { "type" : "TEST/txt" }); window.resolveLocalFileSystemURL(cordova.file.syncedDataDirectory, function (dirEntry) { var isAppend = true; createFile(dirEntry,"TEST.txt", isAppend,blob); }, Error); } function createFile(dirEntry, fileName, isAppend,dataObj) { // Creates a new file or returns the file if it already exists. dirEntry.getFile(fileName, {create: true, exclusive: false}, function(fileEntry) { writeFile(fileEntry, dataObj, isAppend); }, Error); } function writeFile(fileEntry, dataObj, isAppend) { fileEntry.createWriter(function (fileWriter) { fileWriter.onwriteend = function() { if (fileWriter.length === 0) { fileWriter.write(dataObj); }else{ console.log("Successful file read..."); readFile(fileEntry); } }; fileWriter.onerror = function (e) { console.log("Failed file read: " + e.toString()); }; if (isAppend) { try { fileWriter.seek(fileWriter.length); } catch (e) { console.log("file doesn't exist!"); } fileWriter.write(dataObj); }else{ fileWriter.truncate(0) } }); } function readFile(fileEntry) { fileEntry.file(function (file) { var reader = new FileReader(); reader.onloadend = function() { alert(fileEntry.fullPath + ": " + this.result); }; reader.readAsText(file); }, Error); }
"cordova.file.syncedDataDirectory"の部分は他には"documentDirectory"を試しました。
上記リンクの中にあった表の中の「同期の有無」がYesのものです。
「Documents等で確認」というのは、どうやって確認していますか?
「Documents by Readdle」アプリでiTunesと同期したので、アプリで作成したものが表示できる範囲に確認できるかということをしています。目的は作成したファイルの確認と同期なので「Documents by Readdle」にこだわってはいません。
「"DocumentDirectory"を試しました」は documentsDirectory のことでしょうか?
そうです。修正致しました。
開発環境について追記いたします。
PCはWindows10 64bitでMonaca クラウド IDEを使用しています。
デバッグはiPadにMonacaデバッガーをインストールし、Monacaデバッガー上で動かして確認をしております。
なのでおそらくXcodeで確認できません。
回答3件
あなたの回答
tips
プレビュー