File.listFiles()建议的文档null只有在调用它的文件不是目录的情况下才会返回.
我有以下内容:
String dir = "/storage/emulated/0";
File f = new File(dir);
Log.v("Files",f.exists()+"");
Log.v("Files",f.isDirectory()+"");
Log.v("Files",f.listFiles()+"");
Run Code Online (Sandbox Code Playgroud)
日志显示:
true
true
null
Run Code Online (Sandbox Code Playgroud)
由于某种原因,即使被识别为有效目录,listFiles(也会返回.我对Android文件层次结构行为并不是很熟悉,所以我猜测问题就在那里.nullFile
作为参考,我正在我的Moto X上进行调试,无论手机是否插入我的电脑,结果都是一样的 - 所以我认为这不会与插入时的安装有关.
我正在创建一个应用程序来测试File.listFiles()方法是否有效。为了检查这一点,我创建了一个应用程序并在那里使用了它,但是返回 null 代替了数组。这是我的完整代码请帮忙,我已授予 android 11 的所有权限
MainActivity.java
package com.rajkumarcreations.file;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.provider.Settings;
import android.widget.TextView;
import android.widget.Toast;
import org.w3c.dom.Text;
import java.io.File;
import static android.Manifest.permission.READ_EXTERNAL_STORAGE;
import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE;
import static android.os.Build.VERSION.SDK_INT;
public class MainActivity extends AppCompatActivity {
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.btn);
if(!checkPermission()){
requestPermission();
}else{
File file = new File(Environment.getExternalStorageDirectory()+"/Download/");
File[] allfiles …Run Code Online (Sandbox Code Playgroud)