2017-12-20 5 views
0

私の内部ストレージと外部ストレージに存在するjpgファイルを一覧表示しようとしていますが、Environment.getRootDirectory()を使用すると以下のコードが動作しますがEnvironment.getExternalStorageDirectory働いていない。リストファイルが外部ストレージディレクトリに存在する

のOnCreate:私は、以下の呼び出しを追加しました:ここ

walkdir(Environment.getExternalStorageDirectory()); 

は、ファイルを一覧表示するには無効である:

マニフェストに
public void walkdir(File dir) { 
    TextView tv=(TextView)findViewById(R.id.tv_data); 
    int count=0; 
    File[] listFile; 
    listFile = dir.listFiles(); 

    if (listFile != null) { 
     for (int i = 0; i < listFile.length; i++) { 
      if (listFile[i].isDirectory()) { 
       walkdir(listFile[i]); 
      } else { 
       if (listFile[i].getName().toLowerCase().endsWith(".jpg")){ 
        tv.setText(tv.getText().toString()+"\n"+listFile[i].toString()); 
       } 
      } 
     } 
    } 
} 

:私は、これらの権限を追加しました:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

してください誰でもコードがgetRootDirectory()で動作し、getExternalStorageDirectory()で動作しない理由についてアドバイスできます。

答えて

0

おそらく、マニフェストで要求した読み取りと書き込みの許可をユーザーに確認するコードを追加していないためです。

Google for runtime permission。

+0

コードを追加して、ユーザーに読み取りと書き込みの許可を確認する方法をアドバイスしてください –

+0

Google for runtime permissions。 – greenapps

+0

テストのために、あなたのアプリの設定に行き、ストレージトグルをONに切り替えることができます。 – greenapps

関連する問題