SDやdata、downloadなど各種ディレクトリパスの取得方法
SDカードのデータ領域
File Environment.getExternalStorageDirectory()
例: /sdcard
端末内のアプリキャッシュ領域
File getCacheDir()
例: /data/data/com.example.test/cache
端末内のデータ領域
File Environment.getDataDirectory()
例: /data/
Download Cache
File Environment.getDownloadCacheDirectory()
例: /cache
rootディレクトリ
File Environment.getRootDirectory ()
一時ファイル
一時ファイルではファイルの削除がOS任せになるため、ファイルがどこに生成されるか、いつ削除されるかを知る必要がはありません。
File File.createTempFile(String prefix, String suffix)
指定された接頭辞と接尾辞をファイル名の生成に使用して、デフォルトの一時ファイルディレクトリに空のファイルを生成します。
File File.createTempFile(String prefix, String suffix, File directory)
指定されたディレクトリで新しい空のファイルを生成し、その名前には、指定された接頭辞および接尾辞の文字列が使用されます。
OSの一時ファイルディレクトリに空のtesttmp.txtを生成する場合
File tempFile = File.createTempFile("testtmp", ".txt");
このファイルのパスを知るには
String tempPath = tempFile.getAbsolutePath();
または
String tempPath = tempFile.getPath();
SDカードのデータ領域にアプリのデータを保存するとき
SDカードにデータを書き込むにはAndroidManifest.xmlの<manifest>にパーミッション設定が必要です。
[参考記事] AndroidManifest.xml の permission一覧
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
SDカードのデータ領域にアプリのデータを保存するときは、アプリ名のサブフォルダに保存するのが一般的です。
アプリ名とはapp_nameのことではなくpackageのことでcom.example.testのような名称です。
これを得るには
getPackageName()
を使用します。
またこのフォルダは最初には作成されていないので、フォルダの作成が必要です。
そのファイルのパスまでディレクトリを作成するには次のようにします。
file.getParentFile().mkdir();
SDカードはリムーバブルメディアなので端末に刺さっていない場合があります。
SDカードの状態を知るにはステータスを利用します。
String Environment.getExternalStorageState();
マウントされているかどうかはEnvironment.MEDIA_MOUNTEDで得ます。
String mediaStatus = Environment.getExternalStorageState(); if(mediaStatus.equals(Environment.MEDIA_MOUNTED)){ // SDカードがマウントされてない }else{ // SDカードがマウントされている }
ファイル型(File)のファイルパスを文字列型(String)に変換する
file.getPath()
絶対パスを得るには
file.getAbsolutePath();
関連記事
- ListViewにArrayAdapterを渡すサンプルコード(一覧項目から選択する場合のUI)
- assetsフォルダのファイルを扱う方法 AssetManager
- SDカードが接続されているかどうか知る方法 書き込み可能かどうか 読み込み可能かどうか
- SDカードの空き容量を調べる方法
- SDカードからサムネイル画像を取り出す getThumbnailメソッド
- 文字列の置き換えを行う方法 (replaceAllで気をつけること)
- 文字列の部分一致検索を行う方法
- 処理中を表すプログレスダイアログを表示する
- Java メモリー使用量を取得する方法
- SDカードに保存したファイルをギャラリーなどに反映させる方法
- 実行中のメソッド名やクラス名を取得する方法
- Singletonパターンを使ってクラスのインスタンスを1つにする(共有クラスのリソースを削減する方法)
- AndroidアプリでTextViewに使用できるフォントの一覧
- TextViewに独自フォントを使用する方法
- assetsフォルダには1MB以上の非圧縮ファイルを設置できない
- EditTextのソフトキーボードの『完了』を虫メガネアイコンなどに変更する方法
- Viewの表示・非表示を切り替える方法
- ファイルのテキストデータを読み込む
- テキストデータをファイルに書き込む BufferedWriterの使用例
- Webからダウンロードして保存する DefaultHttpClientの使用例
- ファイルをコピーする InputStream,OutputStreamの使用例
- 画像を拡大縮小する方法
- LinearLayout をスクロールさせる方法(ScrollViewの使用方法)
- アプリ起動時にスプラッシュ画面を表示させる方法
- WebViewの設定一覧
- WebViewを使ってWebサイトを表示する方法 WebKitからアプリ、アプリからWebKitへの連携処理
- 暗号化・複合化を行う ブロック暗号
- base64変換の一覧とその詳細サンプルコード
- 型変換の一覧(キャスト)
- 動画を再生する方法 MediaPlayer
- 動画を再生する方法 VideoView
- Androidでマルチスレッド処理をする方法
- 処理を一定時間停止させる方法
- ファイルの拡張子を取得する
- 実機内やエミュレータ内のファイルを操作する DDMS、adbとサンプルコード
スポンサーリンク