読者です 読者をやめる 読者になる 読者になる

opamp_sando's blog

クソザコが割りと適当なことを書くためにある備忘録です。あとたまに普通の日記も書きます

AndroidでSDカード以下のファイル一覧を取得する方法がわからない

Android(2.3.5)で、SDカード以下のファイル一覧を生成してArrayListにでも入れて見たいんだけどできない。
READ_EXTERNAL_STORAGE的なパーミッションは許可してある。

"/sdcard"のFileオブジェクトを取得できるコードがあるようなのでこれを使い以下の様な感じに書いて見てるんだけど...

public MainClass extends Activity{
    ArrayList list;
    @Override
    public void onCreate(Bundle savedInstanceState){
       super.onCreate(savedInstanceState);

       File dir = Environment.getExternalStorageDirectory();
       list = new ArrayList();
       makeList();
    }
  
    private void makeList(File f){
        File[] files = f.listFiles();
        for(File i : files){
             if(i.isDirectory() == true){
                 makeList(i);
             }else{
                 list.add(i.getAbsolutePath());
             }
         }
    }
}

これでコンパイルには成功して実行できるが、実行しても途中で「強制終了」が起こってしまう。
省いているけど実際には取得したリストを表示するコードも書いてコンパイルしてる。

前に作ったDotDeleteもだけど同様のところでいつも強制終了する。全く何が起こってるかわからない...
多分アクセスできないファイルにアクセスしちゃってる系なのかなぁ?って思うけど。

とりあえず、SDカード以下のファイルの一覧を取得できれば他の方法でもいいんだけどわからないorz
指定するディレクトリによっては成功するんだよねこれがまた...
もしかして再帰が深くなりすぎているとか? そんな深くなるかなぁ....

Firefox ブラウザ無料ダウンロード