如何删除Android11上的文件夹?
How to delete a folder on Android 11?
我有疑问,如何删除 Android 11(或 10)上的文件夹?
这里有很多关于如何使用 Stack 的答案,但没有任何效果。
这段代码对我有用 Android 5:
public static boolean deleteDir(File dir) {
if (dir.isDirectory()) {
String[] children = dir.list();
for (int i=0; i<children.length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
}
// The directory is now empty so delete it
return dir.delete();
}
在最新版本的 Android 上它不起作用。我注意到有些应用程序可以做到这一点,所以我想这是可能的。有什么答案吗?
自 Android 10 和 11 以来,Android 围绕文件访问做了很多更改权限模型。首选方法是使用 Scoped Storage APIs.
许多旧文件 read/write 权限处于生命支持状态,将不再有效。如果它们确实继续工作,则必须证明 Google 为什么需要它们,然后通过 Google 的安全批准。只有当您的应用被归类为文件浏览器应用等时,您才会获得批准。
基本上,新模型是使用 Android 的文件浏览器来访问 read/write/更新用户选择的特定文件,并将其余的文件管理推迟到Google 的 first-party 应用程序。您获得的访问权限基于用户在 first-party 文件浏览器中选择的内容。然后,您将使用适当的权限将 URI 返回给您的应用程序以执行预期的操作,例如 read/write/etc...
您可能会发现此视频很有用:
你试过 Context.deleteFile() 了吗?
getApplicationContext().deleteFile(filename);
我有疑问,如何删除 Android 11(或 10)上的文件夹?
这里有很多关于如何使用 Stack 的答案,但没有任何效果。
这段代码对我有用 Android 5:
public static boolean deleteDir(File dir) {
if (dir.isDirectory()) {
String[] children = dir.list();
for (int i=0; i<children.length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
}
// The directory is now empty so delete it
return dir.delete();
}
在最新版本的 Android 上它不起作用。我注意到有些应用程序可以做到这一点,所以我想这是可能的。有什么答案吗?
Android 围绕文件访问做了很多更改权限模型。首选方法是使用 Scoped Storage APIs.
许多旧文件 read/write 权限处于生命支持状态,将不再有效。如果它们确实继续工作,则必须证明 Google 为什么需要它们,然后通过 Google 的安全批准。只有当您的应用被归类为文件浏览器应用等时,您才会获得批准。
基本上,新模型是使用 Android 的文件浏览器来访问 read/write/更新用户选择的特定文件,并将其余的文件管理推迟到Google 的 first-party 应用程序。您获得的访问权限基于用户在 first-party 文件浏览器中选择的内容。然后,您将使用适当的权限将 URI 返回给您的应用程序以执行预期的操作,例如 read/write/etc...
您可能会发现此视频很有用:
你试过 Context.deleteFile() 了吗?
getApplicationContext().deleteFile(filename);