我正在尝试删除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…