Java实现文件重命名

最近在做一个Android上面的一个文件管理器的apk,有文件名重命名和剪切的功能。

一般的思路如下:

重命名:先新建一个文件,复制原先的文件,读写文件,最后删除原先文件

剪切:先复制原先的文件,删除原先文件

以上方法是有bug的,如果磁盘的空间不够的话, 则会出现错误。同时Java的File类中提供重名和剪切的功能。,原先怎么没有发现呢。

下面是Java Api中的方法介绍

renameTo

public boolean renameTo(Filedest)

重新命名此抽象路径名表示的文件。

此方法行为的许多方面都是与平台有关的:重命名操作无法将一个文件从一个文件系统移动到另一个文件系统,该操作不是不可分的,如果已经存在具有目标抽象路径名的文件,那么该操作可能无法获得成功。应该始终检查返回值,以确保重命名操作成功。

参数:dest – 指定文件的新抽象路径名 返回:当且仅当重命名成功时,返回 true;否则返回 false 抛出: SecurityException – 如果存在安全管理器,且其SecurityManager.checkWrite(java.lang.String) 方法拒绝对原路径名和新路径名进行写访问NullPointerException – 如果参数destnull

但是要注意目标文件dest那个目录必须要存储。

但是还有个问题,我们公司使用的是mtk的解决方案,手机内部也有个默认存储空间,还支持扩展sdcard,如果file1剪切到file2,且file1和file2不是同一个sdcard里面的,那么就会操作失败,不知道是为什么,,如果有人实现同样的功能需要注意下。

遇到这样的情况,只能使用上面的笨方法了。不过在操作前需要检测可用空间,防止出现错误,这个是程序员的本分嘛。

如果复制或者是剪切的是目录,也就是文件夹的话,那么需要循环遍历了,循环的穿件文件夹了,反正挺复杂的,。

当你感到悲哀痛苦时,最好是去学些什么东西。

Java实现文件重命名

相关文章:

你感兴趣的文章:

标签云: