2016-06-13 29 views
0
File file = new File("/storage/emulator"); 
File[] list = file.listFiles(); 

リストはnullです。私は既にREAD_EXTERNAL_STORAGE権限を取っています。そのフォルダには、このようなパスがあります"/storage/emulator/0"。私はその/0/フォルダを読もうとしています。私はEnvironment.getExternalDirectory()を使用して/storage/emulator/0にアクセスできますが、私はアンドロイドストレージ内のすべてのファイルを解析しています。私はこのようにしていますAndroid:読み込み/保存/エミュレートのフォルダがありません

String root_sd = System.getenv("ANDROID_STORAGE");  //root_sd = "/storage" 
file = new File(root_sd); 
list = file.listFiles(); 

リストアのすべてのファイルについて、同じことをします。

何らかの理由で、/storage/emulated/のディレクトリを読み取ることができません。このストレージをどのように読み取るのですか?

+1

ファイルパスとして 'Environment.getExternalDirectoryを()'を使用していない理由は何ですか?これは '/ 0 /'フォルダにアクセスできるようになるので、このパスを '新しいファイル(パス)'に渡します。 – ishmaelMakitla

+0

"私はアンドロイドストレージ内のすべてのファイルを解析しています" - あなたは任意の場所にアクセスすることはできません。 – CommonsWare

+0

@ishmaelMakitla sd-cardは/ storage/sd-cardからアクセスできます。だからこそ私は/ storageのすべてを解析する必要があります。 – crysis

答えて

0

アクセスできない理由である0フォルダにはアクセスできません。 したがって、内部のSDカードを開くには、api 23から始まるデバイスに対してgetexternalstoragedirectory()を使用する必要があります。

M以下のAndroid版の場合は、0フォルダにアクセスできます。

アンドロイドの私の強力な音楽プレーヤーアプリケーションでは、エミュレートされたときにgetexternalstoragedirectory()ディレクトリにジャンプするためにアンドロイド版M以上のハードコードがあります。 それはアプリのリンクをチェック をどのように動作するかを確認するには:https://play.google.com/store/apps/details?id=ac.themusicplayer

+0

StackOverflowへようこそ。上記のリンクは、参考文献やチュートリアルとして、あなた、あなたの会社、または広告と見なされる可能性のあるものへの接続を記述することなく、上記のリンクを含めることを検討してください。 – koceeng

関連する問題