「Javascriptがわかる方にあるコーディングを教えていただきたいと思っています。」へのY-Fさんの提案一覧

Y-Fさんの提案

  • 1
  • クライアントのお気に入り 0
    提案日時 2013年08月29日 11:08

    メンバーからのコメント

    はじめまして。
    Y-Fと申します。


    ご質問の内容につきまして、ご案内させていただきます。

    まず、ファイル操作はJavaScript単体ではできません。
    アプリの開発用APIをサーバ側に実装して、利用する必要があります。

    ここで必要なAPIはPhoneGap(Cordova)になるようです。
    PhoneGap(Cordova)を実装して、使用できる状態になっていますか。

    ■使用できる状態になっていない場合
    ちょうどMonacaのサイト上で実装方法が紹介されていますので、ご覧になってください。
    http://docs.monaca.mobi/ja/manual/application/phonegap/

    ■既に使用できる状態の場合
    おそらくこんな感じのコードになると思います。
    懸念点は、ワイルドカード('*')指定が可能か分からなかったことです。
    /////////////////////////////////////////
    // PhoneGap(Cordova) の読み込み完了まで待機 //
    document.addEventListener("deviceready", onDeviceReady, false);

    //requestFileSystemの起動
    function readFile(){
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, getCopyFromFile, fail);
    }

    //コピー元ファイル情報の取得
    function getCopyFromFile(fileSystem) {
    var filename = "file:///data/data/(パッケージ名)/www//img/*.png";
    fileSystem.root.getFile(filename, {create: false}, copyFile, fail);
    }

    //ファイルのコピー
    function copyFile(fileEntry) {
    var parent = document.getElementById('file:///mnt/sdcard/hoge/').value,
    parentName = parent.substring(parent.lastIndexOf('/')+1),
    parentEntry = new DirectoryEntry(parentName, parent);

    // ファイルを新しいディレクトリにコピー(ファイル名は変更しないので、第2引数は空白)
    fileEntry.copyTo(parentEntry,"",success,fail);
    }

    //処理に失敗した場合の処理
    function fail(evt) {
    console.log(evt.target.error.code);
    }
    /////////////////////////////////////////

    実際に動作させる環境がありませんので、誤っている部分があると思われますが、
    参考になれば幸いです。

    ※コンペという募集形式になっているため、jpgファイルを作品として添付する必要があるらしいため、
    ダミーファイルを添付しておきました。


    以上です。
    よろしくお願いいたします。