gpt4 book ai didi

java - 无法获取外部存储目录的文件

转载 作者:行者123 更新时间:2023-11-29 19:50:31 25 4
gpt4 key购买 nike

所以我试图获取某个目录中的所有文件,但在尝试使用 file.listFiles() 时我总是得到 NullPointerException

我的 list 文件中包含正确的权限(在应用程序标签之前):

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

代码:

private void moveFiles() {
String MYTAG = "Mover";
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
File folder = new File(Environment.getExternalStorageDirectory() + "/_appTests/");
if(folder.isDirectory()) { // true
// get all files
listFilesForFolder(folder); // Exception is thrown here
int amount = 0;
for (File f : allFiles) {
String destDir = getMoveDir(f.getName());
try {
moveFile(f.getAbsolutePath(), destDir);
} catch (IOException e) {
Log.e(MYTAG, "Error: "+e.getMessage()+" while moving file: "+ f.getName());
}
Log.i(MYTAG, destDir);
amount++;
}
Toast.makeText(MainActivity.this, "[" + MYTAG + "] Moved " + amount + " files!", Toast.LENGTH_SHORT).show();
Log.i(MYTAG, "Moved " + amount + " files!");
}
}

}

public void listFilesForFolder(File folder) {
for (File fileEntry : folder.listFiles()) // attempted to get length of a null array
{
if (fileEntry.isDirectory()) {
// recursive call if directory
listFilesForFolder(fileEntry);
} else {
// add to global list
allFiles.add(fileEntry);
}
}
}

我也无法访问和读取目录 _appTests 中的文件,在这种情况下抛出 EACCESS 异常(权限被拒绝)。

路径正确,目录也位于/scard/_appTests

我是否必须使用 super 用户权限才能访问此目录?

应用程序 minSdkVersion 是 22 (Android 5.1),我在我的手机上运行 Android 6.0 但我不使用运行时权限请求,我将它们包含在我的 list 文件中。

最佳答案

尝试在“设置”中手动授予存储权限。

当有人将设备升级到 android 6.0(我们的应用程序有 compileSdk 21)时,我们遇到了同样的问题

关于java - 无法获取外部存储目录的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37186976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com