为了账号安全,请及时绑定邮箱和手机立即绑定

无法删除SD卡上的文件

无法删除SD卡上的文件

Smart猫小萌 2021-05-06 18:22:20
我正在尝试删除SD卡上的某些文件,但我的想法没用了。我尝试过File.delete()方法,然后尝试 file.getCanonicalFile().delete() 了更多方法..我的应用程序可以删除设备存储上的文件。我已经在清单文件中定义了所需的权限,如下所示。<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />并且我也在代码中请求许可:  if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {        new AlertDialog.Builder(this)                .setTitle(R.string.read_storage_message)                .setPositiveButton(R.string.ok,                        new DialogInterface.OnClickListener() {                            public void onClick(DialogInterface dialog, int whichButton) {                                ActivityCompat.requestPermissions(activity,                                        new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, MainActivity.READ_STORAGE_PERMISSION_ID);                            }                        }                )                .setNegativeButton(R.string.cancel,                        new DialogInterface.OnClickListener() {                            public void onClick(DialogInterface dialog, int whichButton) {                                AppKiller.kill();                            }                        }                ).show();    }可能是因为我正在请求READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限,但是在代码中我只是被READ_EXTERNAL_STORAGE授予了权限,而另一个在Android中被忽略了(WRITE_EXTERNAL_STORAGE我接受第一个后,它不会显示带有allow-deny选项的权限弹出窗口)。是不是因为它们在android中具有相同的权限级别?有什么问题吗?
查看完整描述

3 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

是的,您无法再使用File类从现代Android版本的SD卡中删除文件。

请改用Storage Access Framework。

看看Intent.OPEN_DOCUMENT_FILEOPEN_DOCUMENT_TREE


查看完整回答
反对 回复 2021-05-26
?
largeQ

TA贡献2039条经验 获得超7个赞

如果要从SD卡删除文件,可以使用以下代码:

File file = new File("/sdcard/myfile.txt");
boolean deleted = file.delete();


查看完整回答
反对 回复 2021-05-26
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

如果要从SD卡删除文件,可以使用以下代码:


File file = new File(selectedFilePath);

boolean deleted = file.delete();

其中selectedFilePath是要删除的文件的路径。


例如:selectedFilePath = /sdcard/YourDirectory/TestFile.mp3


如果您使用的是> 1.6 SDK,也必须授予权限


uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"

在AndroidManifest.xml文件中


希望这对您有帮助



查看完整回答
反对 回复 2021-05-26
  • 3 回答
  • 0 关注
  • 182 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信