android java.io.IOException: open failed: EBUSY (Device or resource busy)

简介:

今天遇到一个奇怪的问题,

测试在程序的下载界面,下载一个文件第一次下载成功,删除后再下载结果下载报错,

程序:file.createNewFile();

报错:java.io.IOException: open failed: EBUSY (Device or resource busy)

 

程序:RandomAccessFile randomAccessFile = new RandomAccessFile(localfile, "rwd");

报错:java.io.FileNotFoundException: open failed: EBUSY (Device or resource busy)

at libcore.io.IoBridge.open

......一啪啦

这些手机都没问题,就只有华为的一款有这个问题,在网上查了,说的是FAT32 system,

resource

open

这是这个测试机的系统,具体的不知道跟这个到底有没关系,反正根据网上一段话说的是把要删除的文件改名然后再删除,下次下载时,就算没删掉,文件名也改了,所以第二次就能下载了。

删除文件代码:

   public void deleteSDCardFolder(File dir) {
       File to = new File(dir.getAbsolutePath() + System.currentTimeMillis());
       dir.renameTo(to);
       if (to.isDirectory()) {
           String[] children = to.list();
           for (int i = 0; i < children.length; i++) {
               File temp = new File(to, children[i]);
               if (temp.isDirectory()) {
                   deleteSDCardFolder(temp);
               } else {
                   boolean b = temp.delete();
                   if (b == false) {
                       Log.d("deleteSDCardFolder", "DELETE FAIL");
                   }
               }
           }
           to.delete();
       }

解决问题参考网址:http://stackoverflow.com/questions/11539657/open-failed-ebusy-device-or-resource-busy



    本文转自 一点点征服   博客园博客,原文链接:http://www.cnblogs.com/ldq2016/p/5581517.html,如需转载请自行联系原作者




相关文章
|
19天前
|
关系型数据库 MySQL Linux
升级到MySQL 8.4,MySQL启动报错:io_setup() failed with EAGAIN
当MySQL 8.4启动时报错“io_setup() failed with EAGAIN”时,通常是由于系统AIO资源不足所致。通过增加AIO上下文数量、调整MySQL配置、优化系统资源或升级内核版本,可以有效解决这一问题。上述解决方案详细且实用,能够帮助管理员快速定位并处理此类问题,确保数据库系统的正常运行。
62 9
|
4月前
|
Java Android开发 C++
🚀Android NDK开发实战!Java与C++混合编程,打造极致性能体验!📊
在Android应用开发中,追求卓越性能是不变的主题。本文介绍如何利用Android NDK(Native Development Kit)结合Java与C++进行混合编程,提升应用性能。从环境搭建到JNI接口设计,再到实战示例,全面展示NDK的优势与应用技巧,助你打造高性能应用。通过具体案例,如计算斐波那契数列,详细讲解Java与C++的协作流程,帮助开发者掌握NDK开发精髓,实现高效计算与硬件交互。
174 1
|
5月前
|
Java Spring
成功解决Initialization failed for ‘https://start.spring.io‘ Please check URL, network and proxy settings
这篇文章提供了解决Spring Initializr网站初始化失败问题的方法,包括检查URL、网络和代理设置。
成功解决Initialization failed for ‘https://start.spring.io‘ Please check URL, network and proxy settings
|
5月前
|
存储 搜索推荐 Java
探索安卓开发中的自定义视图:打造个性化UI组件Java中的异常处理:从基础到高级
【8月更文挑战第29天】在安卓应用的海洋中,一个独特的用户界面(UI)能让应用脱颖而出。自定义视图是实现这一目标的强大工具。本文将通过一个简单的自定义计数器视图示例,展示如何从零开始创建一个具有独特风格和功能的安卓UI组件,并讨论在此过程中涉及的设计原则、性能优化和兼容性问题。准备好让你的应用与众不同了吗?让我们开始吧!
|
5月前
|
Java 调度 Android开发
Android经典实战之Kotlin的delay函数和Java中的Thread.sleep有什么不同?
本文介绍了 Kotlin 中的 `delay` 函数与 Java 中 `Thread.sleep` 方法的区别。两者均可暂停代码执行,但 `delay` 适用于协程,非阻塞且高效;`Thread.sleep` 则阻塞当前线程。理解这些差异有助于提高程序效率与可读性。
89 1
|
5月前
|
Android开发
Android Studio: 解决Gradle sync failed 错误
本文介绍了解决Android Studio中出现的Gradle同步失败错误的步骤,包括从`gradle-wrapper.properties`文件中获取Gradle的下载链接,手动下载Gradle压缩包,并替换默认下载路径中的临时文件,然后重新触发Android Studio的"Try Again"来完成同步。
1899 0
Android Studio: 解决Gradle sync failed 错误
|
5月前
|
Java 编译器
Error:java: Compilation failed: internal java compiler error
Error:java: Compilation failed: internal java compiler error
111 1
|
5月前
|
Android开发
Cannot create android app from an archive...containing both DEX and Java-bytecode content
Cannot create android app from an archive...containing both DEX and Java-bytecode content
48 2
|
5月前
|
Java Android开发
解决Android编译报错:Unable to make field private final java.lang.String java.io.File.path accessible
解决Android编译报错:Unable to make field private final java.lang.String java.io.File.path accessible
717 1
|
5月前
|
开发工具 Android开发
解决Manifest merger failed : android:exported needs to be explicitly specified for <activity>
解决Manifest merger failed : android:exported needs to be explicitly specified for <activity>
118 1

推荐镜像

更多