有两个文件:
File src = new File("loc/xyz.mp3")
和 File dst=new File("loc/xyz1.mp3")
。
现在我想将xyz.mp3
重命名为dst
,同时删除src
文件,怎么才能实现?我试过的代码:
src.delete();
dst.renameTo(src);
在应用的背景中异步运行,第一次执行时成功了,但是第二次就崩溃了。
请帮忙解决一下,谢谢。
根据文档说明:
Renames the file denoted by this abstract pathname.
Many aspects of the behavior of this method are inherently platform-dependent: The rename operation might not be able to move a file from one filesystem to another, it might not be atomic, and it might not succeed if a file with the destination abstract pathname already exists. The return value should always be checked to make sure that the rename operation was successful.
在AsyncTask中,不能保证src
和dst
。检测一下src.exists() && dst.exists()
可能帮助你避免错误。 使用deleteOnExit
也可以。
new File("loc/xyz1.mp3").renameTo(new File("loc/xyz.mp3"));