티스토리 뷰
Android 단말에서 파일관련 작업을 할 때 아래와 같은 오류가 발생하는 경우가 있다.
open failed: EBUSY (Device or resource busy)
보통 무엇인가 지운 후 동일한 이름으로 다시 쓰려고 할 때 주로발생한다.
파일시스템상 파일을 지울 때 바로지워지지않고 정보만 먼저 반영되고난 후 디스크에서 지워지는데,
이 때 삭제중이거나 대기중인 파일명으로 쓰기요청이 들어오면 IO에 오류가 발생한다.
이런현상을 방지하고자 삭제 할 때는 아래와 같이 임시로 이름을 변경하고 지워주자.
그러면 동일한 현상을 일어나지 않을것이다.
public static void remove(String deleteFilePath){ try{ File target = new File( deleteFilePath ); File trash = new File( target.getAbsolutePath() + System.currentTimeMillis() ); target.renameTo(trash); // 임시 파일명으로 변경 trash.delete(); }catch(Exception e){ e.printStackTrace(); } } |
[작성자] devbible.tistory.com
'Development' 카테고리의 다른 글
[Java] Thead start() vs run() (0) | 2014.02.26 |
---|---|
[IOS] ARC (자동 메모리정리) (0) | 2014.02.19 |
[Android] 오류핸들러 UncaughtExceptionHandler (0) | 2014.02.12 |
[Android] marshalling/unmarshalling 마샬링/언마샬링 라이브러리 (Xml / JSON) (0) | 2014.01.20 |
[Android] AndroidStudio Gradle Daemon오류 (2) | 2013.12.19 |
댓글
최근에 올라온 글
글 보관함
- Total
- Today
- Yesterday