无法列出或打开Android文档目录中的文件

无法列出或打开Android文档目录中的文件,android,Android,因此,我在手机上使用Excel创建了一个名为theBook.csv的文件,该文件已保存到手机的Documents文件夹中。当我试图列出手机文档文件夹的内容时,我得到一个空点异常,表示我试图获取空数组的长度 以下是我尝试过的: String path = Environment.getExternalStorageDirectory().toString() + "/Documents"; // I have also tried: // String path = Environment.get

因此,我在手机上使用Excel创建了一个名为
theBook.csv
的文件,该文件已保存到手机的
Documents
文件夹中。当我试图列出手机
文档
文件夹的内容时,我得到一个
空点异常
,表示我试图
获取空数组的长度

以下是我尝试过的:

String path = Environment.getExternalStorageDirectory().toString() + "/Documents";
// I have also tried:
// String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
// and
// String path = Environment.getRootDirectory().getAbsolutePath() + "/Documents";
Log.i("Files", "The path is: " + path);
File f = new File(path);
File file[] = f.listFiles();
try {
    Log.i("Files", "Number of files: "+ file.length);
    for (int i = 0; i < file.length; i++) {
        Log.i("Files", "Found file with name:" + file[i].getName());
    }
} catch (NullPointerException e) {
    entoast("NPE"); // my toast message method
    e.printStackTrace();
}
String path=Environment.getExternalStorageDirectory().toString()+“/Documents”;
//我也尝试过:
//字符串路径=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY\u文档);
//及
//字符串路径=Environment.getRootDirectory().getAbsolutePath()+“/Documents”;
Log.i(“文件”,“路径为:”+path);
文件f=新文件(路径);
File File[]=f.listFiles();
试一试{
Log.i(“文件”,“文件数:”+文件长度);
for(int i=0;i
当我查看日志时,
path
的值是
/storage/emulated/0/Documents
(不管我尝试了三行中的哪一行),我不确定这是否对应于
Documents
文件夹,其中
是book.csv
。如果是,为什么日志文件中没有显示book.csv
?如果没有,我如何让我的程序访问手机的实际
文档
文件夹,而不仅仅是一个空目录


当手机通过USB连接进行文件传输时,可以查看文档文件夹,使用手机内置的文件浏览器时,也可以查看文档文件夹。我在手机上运行的是安卓6.0,尽管该应用程序的最低SDK要求是安卓4.1。我的清单文件中也有
行。

读取外部存储属于危险类别权限。您应该在运行时请求权限。Android 6.0中添加了此功能

检查是否授予了权限

// Assume thisActivity is the current activity
int permissionCheck = ContextCompat.checkSelfPermission(thisActivity,
        Manifest.permission.READ_EXTERNAL_STORAGE);
如果应用程序具有该权限,该方法将返回PackageManager.permission_,并且应用程序可以继续该操作。其他请求权限运行时

有关更多详细信息,请访问android官方文档


要获得危险权限的完整列表,您必须在清单文件中添加
。读取外部存储属于危险类别权限,您应该在运行时请求权限。Android 6.0I中添加了这一功能,它肯定会在运行时查看请求权限。同时,是否会有一个更理想的外部存储目录供应用程序查看,而不是文档目录?