ディレクトリ関連メモ

よく忘れるので自分で見れるようにまとめ。

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
     */
}