android删除文件出错
来源:互联网 发布:2017淘宝直通车 编辑:程序博客网 时间:2024/06/05 02:12
当删除一个文件,再重新下载这个同名文件,保存到sdcard时出现error,部分手机出现
Caused by: libcore.io.ErrnoException: open failed: EBUSY (Deviceor resource busy)
at libcore.io.Posix.open(Native Method)
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
at java.io.File.createNewFile(File.java:941)
此问题在小米3,华为系列手机出现概率较大。
文件创建失败的原因是,文件被删除后仍然被其他进程占用。
进入adb shell,通过lsof命令查看占用该文件的进程。
据说这是android文件系统的bug,建议删除文件前先将该文件进行重命名:
删除文件安全方式:
private void deleteFile(File file) {
if (file.isFile()) {
deleteFileSafely(file);
return;
}
if (file.isDirectory()) {
File[] childFiles = file.listFiles();
if (childFiles == null || childFiles.length == 0) {
deleteFileSafely(file);
return;
}
for (int i = 0; i < childFiles.length; i++) {
deleteFile(childFiles[i]);
}
deleteFileSafely(file);
}
}
/**
* 安全删除文件.
* @param file
* @return
*/
public static boolean deleteFileSafely(File file) {
if (file != null) {
String tmpPath = file.getParent() + File.separator + System.currentTimeMillis();
File tmp = new File(tmpPath);
file.renameTo(tmp);
return tmp.delete();
}
return false;
}
- android删除文件出错
- android删除文件出错
- C# 删除文件出错
- C# 资源文件删除后出错
- svn删除文件出错的经验总结
- 删除数据库中的次要文件出错
- android R资源文件出错
- Android Studio R文件出错
- oracle11g卸载出错 无法删除文件,文件正在使用中
- android 删除系统文件
- android删除文件权限
- Android 删除文件
- 爱普生打印机打印出错,删除打印文件批处理
- 删除文件夹时出错提示文件正在别使用。
- 记录rm删除文件出错/bin/rm:Argument list too
- 彻底删除"提示删除文件和文件夹"时出错的文件或文件夹
- 在制作android系统文件时出错
- android R.java 文件出错解决方法
- 《柔性字符串匹配》读书笔记(1)之--KMP算法(单模式串匹配、前缀匹配)
- 第七课,分支结构程序体验|三个整数输出最大值 |计算两数正差值|周薪计算
- 在QML的UbuntuApplication Context Property
- 嵌入式Linux系统图形及图形用户界面综述--2005-04-20博客搬家
- linq读写dt
- android删除文件出错
- erlang 压力测试工具 tsung
- Axure实现淡入淡出效果
- Android加载图片导致内存溢出(Out of Memory异常)
- 用SharedPreferences做setting(设置界面)
- 解决spring使用动态代理类型转换失败的问题--java.lang.ClassCastException: com.sun.proxy.$Proxy$ cannot be cast to ...
- 关于struct大小的计算
- Ubuntu 14.04 java环境安装配置(不是openJAVA)
- Windows + Apache 2.2+Tomcat7 集群配置