如何卸载java sd卡_无法删除SD卡上的文件 - java

我正在尝试删除SD卡上的某些文件,但我的想法没用了。

我尝试了File.delete()方法,然后我尝试了file.getCanonicalFile().delete()还有很多 ..

我的应用程序只能删除设备存储上的文件。

我已经在清单文件中定义了所需的权限,如下所示。

而且我还在代码中请求许可:

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();

}

if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {

new AlertDialog.Builder(this)

.setTitle(R.string.write_storage_message)

.setPositiveButton(R.string.ok,

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int whichButton) {

ActivityCompat.requestPermissions(activity,

new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, MainActivity.STORAGE_PERMISSION_ID);

}

}

)

.setNegativeButton(R.string.cancel,

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int whichButton) {

AppKiller.kill();

}

}

).show();

}

}

我正在使用以下方法删除文件,但是正如我之前提到的,我已经使用了Stack-overflow等中的许多解决方案。

protected boolean delete(Context context) throws Exception {

boolean delete = false;

File file = new File(Environment.getExternalStorageDirectory().getPath() + getName());

if (file.exists()) {

delete = file.delete();

if (!delete) {

delete = file.getCanonicalFile().delete();

}

if (!delete) {

String deleteCmd = "rm -r " + file.getAbsolutePath();

Runtime runtime = Runtime.getRuntime();

runtime.exec(deleteCmd);

}

}

return delete;

}

可能是因为我正在请求READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限,但是在代码中我只是获得了READ_EXTERNAL_STORAGE授予,而另一个则被Android忽略(我接受第一个后,它不会显示带有allow-deny选项的WRITE_EXTERNAL_STORAGE弹出权限)。是不是因为它们在android中具有相同的权限级别?

有什么问题吗?

参考方案

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

请改用Storage Access Framework。

看看Intent.OPEN_DOCUMENT_FILE和OPEN_DOCUMENT_TREE。

Java File.delete()有时会留下无法访问的文件(Windows) - java

我试图以编程方式从正在运行的(!)系统中清除日志文件,该系统由数个Java和非Java服务器组成。我使用了Java的File.delete()操作,它通常可以正常工作。对于当前未删除的正在使用的日志文件,我也非常满意,因此只要File.delete()返回false时,我就将其记录为警告。但是,在目前仍由NON-Java应用程序(Postgres,Apach…android-android studio模拟器中的SSL问题,在手机上可以正常工作 - java

我有一个可以通过https调用网络服务的应用程序。当我在手机上运行apk时,效果很好。但是,在模拟器中,所有通过POST的SSL请求均失败,并显示以下信息: 读取错误:ssl = 0xb402be00:SSL库失败,通常是一个协议 错误 错误:100c50bf:SSL例程:ssl3_read_bytes:NO_RENEGOTIATION(外部/无聊的sl /…绑定Java库Xamarin.Android - java

我花了两天时间在每个论坛,文档,tuto,博客等上寻找答案。我为实习生启动了一个Android应用程序,因为我不懂Java,所以用xamarin C#开发了它。直到最近一切都还不错,但现在我需要集成一个SDK才能在应用程序中使用POS(销售点),但是该库是用Java编写的,即使跟随文档或辅导老师,我也无法将其与xamarin绑定(我什至无法调试)。这里有人已…Android Studio报告“android sdk解析不正确” - java

我只是将一个android项目从eclipse迁移到了android studio,但是当我尝试对其进行编译时,出现错误“android sdk被错误地解析”。有什么帮助吗? 参考方案 尝试将Android Studio配置为指向您的SDK安装。首先关注EditText清晰文本-Android - java

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current fo…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值