ディレクトリ関連メモ
よく忘れるので自分で見れるようにまとめ。
Context#getExternalFilesDir(String type);
これだと外部ストレージの /Android/data/{パッケージ名}/files 以下を取得。
アプリをアンインストールすると、ここのパスにあるファイルも削除される。
Environment#getExternalStoragePublicDirectory(String type);
こっちは外部ストレージ直下のtypeを取得。(例:/sdcard/Downloads)
Environment#getExternalStorageDirectory();
言わずと知れた外部ストレージのパスを取得。
Context#getFileStreamPath(String name);
内蔵ストレージ(アプリ固有パス)を取得。
package com.example.folder; import java.io.File; import android.os.Bundle; import android.os.Environment; import android.app.Activity; import android.util.Log; import android.view.Menu; public class MainActivity extends Activity { private static final String TAG = "DIRS"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); File f = getApplicationContext().getExternalFilesDir(Environment.DIRECTORY_ALARMS); Log.i(TAG, "DIRECTORY_ALARMS=" + f.getPath()); f = getApplicationContext().getExternalFilesDir(Environment.DIRECTORY_DCIM); Log.i(TAG, "DIRECTORY_DCIM=" + f.getPath()); f = getApplicationContext().getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS); Log.i(TAG, "DIRECTORY_DOWNLOADS=" + f.getPath()); f = getApplicationContext().getExternalFilesDir(Environment.DIRECTORY_MOVIES); Log.i(TAG, "DIRECTORY_MOVIES=" + f.getPath()); f = getApplicationContext().getExternalFilesDir(Environment.DIRECTORY_MUSIC); Log.i(TAG, "DIRECTORY_MUSIC=" + f.getPath()); f = getApplicationContext().getExternalFilesDir(Environment.DIRECTORY_NOTIFICATIONS); Log.i(TAG, "DIRECTORY_NOTIFICATIONS=" + f.getPath()); f = getApplicationContext().getExternalFilesDir(Environment.DIRECTORY_PICTURES); Log.i(TAG, "DIRECTORY_PICTURES=" + f.getPath()); f = getApplicationContext().getExternalFilesDir(Environment.DIRECTORY_PODCASTS); Log.i(TAG, "DIRECTORY_PODCASTS=" + f.getPath()); f = getApplicationContext().getExternalFilesDir(Environment.DIRECTORY_RINGTONES); Log.i(TAG, "DIRECTORY_RINGTONES=" + f.getPath()); f = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_RINGTONES); Log.i(TAG, "DIRECTORY_RINGTONES=" + f.getPath()); f = Environment.getExternalStorageDirectory(); Log.i(TAG, "ExternalStorageDir=" + f.getPath()); f = getApplicationContext().getDir("hoge", MODE_APPEND); Log.i(TAG, "getDir=" + f.getPath()); f = getApplicationContext().getFileStreamPath("foo.txt"); Log.i(TAG, "getFileStreamPath=" + f.getPath()); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } /* 08-26 22:48:01.461: I/DIRS(32598): DIRECTORY_ALARMS=/storage/sdcard0/Android/data/com.example.folder/files/Alarms 08-26 22:48:01.461: I/DIRS(32598): DIRECTORY_DCIM=/storage/sdcard0/Android/data/com.example.folder/files/DCIM 08-26 22:48:01.461: I/DIRS(32598): DIRECTORY_DOWNLOADS=/storage/sdcard0/Android/data/com.example.folder/files/Download 08-26 22:48:01.461: I/DIRS(32598): DIRECTORY_MOVIES=/storage/sdcard0/Android/data/com.example.folder/files/Movies 08-26 22:48:01.461: I/DIRS(32598): DIRECTORY_MUSIC=/storage/sdcard0/Android/data/com.example.folder/files/Music 08-26 22:48:01.461: I/DIRS(32598): DIRECTORY_NOTIFICATIONS=/storage/sdcard0/Android/data/com.example.folder/files/Notifications 08-26 22:48:01.461: I/DIRS(32598): DIRECTORY_PICTURES=/storage/sdcard0/Android/data/com.example.folder/files/Pictures 08-26 22:48:01.461: I/DIRS(32598): DIRECTORY_PODCASTS=/storage/sdcard0/Android/data/com.example.folder/files/Podcasts 08-26 22:48:01.461: I/DIRS(32598): DIRECTORY_RINGTONES=/storage/sdcard0/Android/data/com.example.folder/files/Ringtones 08-26 22:48:01.461: I/DIRS(32598): DIRECTORY_RINGTONES=/storage/sdcard0/Ringtones 08-26 22:48:01.461: I/DIRS(32598): ExternalStorageDir=/storage/sdcard0 08-26 22:48:01.461: I/DIRS(32598): getDir=/data/data/com.example.folder/app_hoge 08-26 22:48:01.461: I/DIRS(32598): getFileStreamPath=/data/data/com.example.folder/files/foo.txt */ }