Java File listfiles()返回Null

Java File listfiles()返回Null,java,android,Java,Android,listFiles()返回null,但在该目录中有可用的文件,我也在运行时请求了READ_EXTERNAL_存储权限,仍然面临相同的问题。我的sdk版本在29 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); recyclerView = f

listFiles()返回null,但在该目录中有可用的文件,我也在运行时请求了READ_EXTERNAL_存储权限,仍然面临相同的问题。我的sdk版本在29

@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    recyclerView = findViewById(R.id.recyclerView);
    layoutManager = new LinearLayoutManager(this);
    recyclerView.setLayoutManager(layoutManager);

    if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
            == PackageManager.PERMISSION_GRANTED){
        File file = new File(Environment.getExternalStorageDirectory().toString() + WHATSAPP_DIR_LOCATION);

        Log.d("LOL",String.valueOf(file));

        MyAdapter recyclerAdapter = new MyAdapter(this.getListFiles(file),MainActivity.this);
        recyclerView.setAdapter(recyclerAdapter);
    }
    else {
        ActivityCompat.requestPermissions(this,new String[]{
                Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE
        },REQUEST_CODE);
    }

 private ArrayList<File> getListFiles(File parentDir){

    ArrayList<File> inFiles = new ArrayList<>();
    File[] files;

    files = parentDir.listFiles();
    Log.d("Test1","hey");

    if (files != null){

        Log.d("Test2","hey");
        for (File file: files){
            if (file.getName().endsWith(".jpg") || file.getName().endsWith(".gif") || file.getName().endsWith(".mp4")){

                if (!inFiles.contains(file))
                    inFiles.add(file);
            }
        }
    }
    return inFiles;
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView=findViewById(R.id.recyclerView);
layoutManager=新的LinearLayoutManager(此);
recyclerView.setLayoutManager(layoutManager);
if(ContextCompat.checkSelfPermission(这个,Manifest.permission.WRITE\u外部存储)
==PackageManager.权限(已授予){
File File=新文件(Environment.getExternalStorageDirectory().toString()+WHATSAPP\u DIR\u位置);
Log.d(“LOL”,String.valueOf(file));
MyAdapter recyclerAdapter=新的MyAdapter(this.getListFiles(file),MainActivity.this);
recyclerView.setAdapter(recyclerAdapter);
}
否则{
ActivityCompat.requestPermissions(此,新字符串[]){
Manifest.permission.WRITE\u外部存储,Manifest.permission.READ\u外部存储
},请求代码);
}
私有ArrayList getListFiles(文件parentDir){
ArrayList inFiles=新的ArrayList();
文件[]文件;
files=parentDir.listFiles();
Log.d(“Test1”,“嘿”);
如果(文件!=null){
Log.d(“Test2”,“嘿”);
用于(文件:文件){
if(file.getName().endsWith(“.jpg”)|| file.getName().endsWith(“.gif”)|| file.getName().endsWith(“.mp4”)){
如果(!inFiles.contains(文件))
inFiles.add(文件);
}
}
}
返回填充;
}

我们可以看一下parentDir吗?是的,它的公共最终字符串WHATSAPP\u DIR\u LOCATION=“/WHATSAPP/Media/.Statuses/”;File File File=new File(Environment.getExternalStorageDirectory().toString()+WHATSAPP\u DIR\u LOCATION);尝试将目标API降低到28或启用旧版存储,然后重试。尝试在这两部分之间添加fileSeparator。我将同时尝试这两部分