質問: new File(Downloads_path).listFiles(); にて、Downloadフォルダ以下のディレクトリを取得しようとしたが、できなかった。 Logにて、取得したpathを表示したところ /storage/emulated/0/Download このようになっておりました。 また、adbで取得したpathにアクセスしたところディレクトリがある事は確認しております。 ### 補足情報(FW/ツールのバージョンなど) 最終的に解決した方法は以下のようにパーミッションを要求するように実装したところ解決しました。 他の方の参考になればと思い、以下に書き残しときます。 1に実装するにあたって以下のAndroid Developerのサイトを参考にしました。 2に欲しいPermissionの種類がいろいろ書いてあります。 1https://developer.android.com/training/permissions/requesting?hl=ja 2https://developer.android.com/reference/android/Manifest.permission?hl=ja#READ_CONTACTS ``` public void CheckPermission() { if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { //ここでパーミッションがあるかチェックしてる? if (ActivityCompat.shouldShowRequestPermissionRationale(this, permission.READ_EXTERNAL_STORAGE)) { //ここはよくわからないけど、必要っぽい? }else{ ActivityCompat.requestPermissions(this,newString[]{permission.READ_EXTERNAL_STORAGE},GetResultPermission); //このelse文でユーザ側にアクセス可能かどうかをポップアップで聞いてくる } } } ``` manifestファイルにも必要なpermissionを追記しないといけないと思います。 自分の場合は、外部ストレージ(ExternalStorage)へのREADのアクセスが必要でしたので、以下を追記しました。
回答: おそらく実行時パーミッション(Runtime Permission)の取得の実装がされていないものと思います。ストレージ上のファイルを取得するには実行時パーミッションが必要となりますので、適切に実装した上で再度試してみてください。