APIとはWebアプリケーションでユーザのローカルにデータの保存、読込ができるAPIです。残念なことに対応してるブラウザが多くはありません。今回はChrome※1を使っていますが、Chomeもブラウザのバージョンが上がるごとに仕様が少しずつ変わっていたりしています。APIのメソッドにもベンダプレフィックスがついていることからまだ実験的な段階といえます。それでも可能性が色々あるAPIですので、今回取り上げてみました。chromeのはバージョン31を使用しています。APIには「TEMPORARY」「PERSISTENT」の形式が2種類があります。TEMPORARYで保存したファイルは空き容量が必要になった時などブラウザの判断でファイルを削除することができるので一時的に保存することを想定しています。一時的とはいえ、ブラウザを閉じたとしてもファイルは削除されることはありませんので安心して下さい。PERSISTENTはユーザまたはアプリケーションの許可なしには削除されることはありません。ファイルを保存するのにユーザからの許可が必要になります。こちらについては後でまた説明したいと思います。TEMPORARY形式の読込ではまず「TEMPORARY」形式のファイル読込のサンプルを見てみましょう。以下のサンプルはtmp.txtを読込み、読込んだデータをid=txtの要素に値を設定しています。onloadInitはbodyから呼び出しています。onload="onloadInit()"></body>まず、最初にユーザに対して「1024*1024*5」バイトのファイルを使用することを要求しています。{ファイル名を指定して読込んでいる部分が以下になりますがここでは「create:true」と指定しています。これはファイルが無ければ新規でファイルを作成する設定になります。次に「PERSISTENT」形式でのファイル読込のサンプルを見てみましょう。);}違いは以下の2箇所になります。{冒頭で述べましたが、こちらのスクリプトを実行すると以下のようなメッセージが表示され、ユーザに対して許可を求めます。現在のchromeの仕様では要求ファイルサイズが「1024*1024」バイトまででしたら[PERSISTENT]形式でもユーザに対して許可を求めないようです。APIで保存したファイルを確認してみましょう。Explorer」というツールがあります。このツールを使うと使用しているブラウザにどんなデータが保存されているか確認でき、また削除することもできます。ラジオボタンを切り替えることで、それぞれの保存形式のファイルについて確認することができます。ファイルの書き込みファイルへの書き込みのサンプルを見てみましょう。});}このサンプルを実行するとtmp.txtに[hogehoge]を書き込みを行います。ファイルにデータを書き込むにはBlobオブジェクトを使用して書き込みます。Explorer」を実行してみましょう。ファイルサイズが8バイトになっているのが分かります。ファイルをクリックすると書き込んだ内容も表示されます。APIはディレクトも作成することができます。ファイルを作成する際は「fs.root.getFile」でしたが、ディレクトリを作成する場合は「fs.root.getDirectory」になります。});}またディレクトリの中にディレクトを作成していくこともできます。その場合は、1つずつディレクトリを作成していく必要があります。以下の例では配列に指定したディレクトリ名を入れ子にして作成しています。Explorer」で確認してみます。ディレクトリの中にディレクトリが作成されていることが分かります。ファイルの削除ファイルの削除はremoveメソッドを使用します。false}に設定します。trueに設定するとファイルが無い場合に一度ファイルを作成してから削除されるという余計な処理がされてしまいます。});}ディレクトリの削除ディレクトリの削除もファイル削除と同じでremoveメソッドを使用します。ディレクトリの削除では1点注意が必要です。削除しようとしているディレクトリ内にファイルなどがある場合はエラーとなってしまいます。先ほど作成したディレクトリ「/dir1/dir2/dir3」を削除したい場合に以下を実行するとエラーが発生します。e.code);}ディレクトリ「/dir1/dir2/dir3」を削除する場合はdir3から順番に削除する必要があります。その場合は以下のようにdir3までのフルパスを指定します。これでdir3のディレクトリが削除することができます。errorHandler);});まとめいかたでしたでしょうか。今回はファイルの作成・削除、ディレクトリの作成・削除について説明しました。これを応用して他のAPIなどと組み合わせれば色々なことが出来るかと思います。395,368まだプロフィールが設定されていません。〜ITエンジニアのお仕事とホンネ〜2月19日に新卒向けの会社説明会〜ITエンジニアのお仕事とホンネ〜を開催します。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。