23647


monacaクラウドIDEとAndroidエミュレータのgenymotionで開発をしています。  
monacaのcordovaFileプラグインを使ってAndroidのローカルストレージにCSVファイルを書き出したいと考えています。

genymotion上のmonacaデバッガ―でコードの動作を確認しており、ファイルは出力されていると思います。しかし、genymotion上に「esファイルエクスプローラー」をインストールして出力されるはずのファイルを探したのですが、見当たりません。

また、クラウドIDEでビルドしたapkファイルを同じくgenymotionにインストールして動作させてみてもやはりファイルは見当たりません。

このようなやり方は見当違いなのでしょうか？

宜しくお願い致します。

3/31追記  
ネットからコピーしたものですが、以下がindex.htmlの内容です。

[code]

    【index.html】 
    
    <!DOCTYPE HTML>
    <html>
    <head>
      <meta charset="utf-8">
      <title>PhoneGap</title>
      <script type="text/javascript" charset="utf-8" src="phonegap-1.4.0.js"></script>
       <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
       <meta http-equiv="Content-Security-Policy" content="default-src * data:; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'">
    
      <script>
    
          function success(parent) {
            console.log("親ディレクトリの名前: " + parent.name);
        }
    
        function fail(error) {
            alert("新しいディレクトリの作成中にエラーが発生しました: " + error.code);
        }
    
    
      //+++++++ write +++++++
        function writeFile(){
            window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS_W, fail);
        }
    
        function gotFS_W(fileSystem) {
    
            var filename = "data.txt";
    
            fileSystem.root.getFile(filename, {create: true}, gotFileEntry_W, fail); 
            fileSystem.root.getDirectory("newDir", {create: true, exclusive: false}, success, fail);
        }
    
    
        function gotFileEntry_W(fileEntry) {
            fileEntry.createWriter(gotFileWriter, fail);
    
        }
    
        function gotFileWriter(writer) {
    
            writer.onwrite = function(evt) {
                //alert("write success");
            };
    
            var data = document.getElementById("memo").value;
            writer.write(data);
    
        }
    
        //+++++++　read　+++++++
        function readFile(){
            window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS_R, fail);
        }
    
        function gotFS_R(fileSystem) {
            var filename = "data.txt";
    
            fileSystem.root.getFile(filename, {create: true}, gotFileEntry_R, fail);
        }
    
        function gotFileEntry_R(fileEntry) {
            fileEntry.file(gotFile, fail);
        }
    
        function gotFile(file){
            readAsText(file);
        }
    
        function readAsText(file) {
            var reader = new FileReader();
            reader.onloadend = function(evt) {
                var saved_data = evt.target.result;
    
                document.getElementById("result").value = saved_data;
            };
            reader.readAsText(file);
        }
    
        //error
        function fail(error) {
            alert(error.code);
        }
    
    
      </script>
    
    </head>
    <body>
    
      <input type="text" id="memo" value="">
      <input type="button" value="書き込み" onClick="writeFile()">
      <br><br>
      <input type="button" value="読み出し" onClick="readFile()">
      <input type="text" id="result" value="">
    </body>
    </html>
    
[/code]

`  
３/３１追記２

ボタンクリックで以下のコードが走るようにして、sdcardへファイルを移動させようとしたのですが、エラーになってしまいました。  
mobi.monaca以外のフォルダに置くこともできるのでしょうか？

[code]

     //ファイル移動
    
        function moveTo1(){
    
        window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, moveTo1_gotFS, moveTo1_fail);
        console.log('moveTo1');
    }
    function moveTo1_gotFS(fileSystem) {
        fileSystem.root.getFile("data.txt", null, moveTo1_gotFileEntry, moveTo1_fail);
        console.log('moveTo1_gotFS');
    }
    function moveTo1_gotFileEntry(fileEntry) {
    //  var tmp =fileEntry.fullPath;
    //  var parentPath = tmp.substring(0, tmp.lastIndexOf('/'));
    //  var parentName = parentPath.substring(parentPath.lastIndexOf('/')+1);
        var parentEntry = new DirectoryEntry('sdcard', 'file:///mnt/sdcard/');
        console.log(parentEntry.fullPath);
        console.log(parentEntry.name);
        fileEntry.moveTo(parentEntry, "data2.txt", moveTo1_moveToSuccess, moveTo1_fail);
        console.log('moveTo1_gotFileEntry');
    }
    function moveTo1_moveToSuccess(entry) {
        var dump = "moveTo1_moveToSuccess\n";
        dump += entry.name+"\n"+entry.fullPath+"\n";
        document.getElementById("dumpAreaFile").value =dump;
         console.log('moveTo1_moveToSuccess');
    }
    function moveTo1_fail(error){
        alert("moveTo1_fail: " + error.code);
    
    }
    
[/code]


CC BY-SA 3.0
2016-03-30T13:56:59.730
23626
2016-03-31T11:44:07.740
2016-03-31T10:54:46.053
14966
14966
question
monaca genymotion
genymotion上でのmonacaアプリのファイル保存先が分かりません


`fileEntry.toURL()`を実行すれば、どこにファイルが書き込まれたかわかります。

[code]

    function gotFileEntry_W(fileEntry) {
        console.log(fileEntry.toURL());
        fileEntry.createWriter(gotFileWriter, fail);
    }
    
[/code]

おそらく`file:///data/data/mobi.monaca.debugger/files/files/data.txt`と出力されるはずです。  
`/data/data/～`は`ADB for
Chrome`のコマンドラインなどで確認することができますが、SDカードまたはそれに相当する領域に書き込めば、`ファイルマネージャー`などのアプリで確認できます。

**SDカードについての追記**  
`config.xml`に次の行を追加してください。  
詳しい内容はこちらに記載されています。  
<https://github.com/apache/cordova-plugin-file/tree/master/doc/ja>

[code]

    <preference name="AndroidPersistentFileLocation" value="Compatibility"/>
    
[/code]

※3/31追記の最初のコードで試してください。  
※Monacaデバッガーで追加しても動作しない場合は、同期データを一度削除して再度実行してみてください。


CC BY-SA 3.0
2016-03-31T06:59:43.500
23647
2016-03-31T11:44:07.740
2016-03-31T11:44:07.740
9566
9566
23626
answer