Java文件重命名

2018-06-09

Java文件重命名

单一文件重命名

File f1 = new File(directory.getPath() + File.separator + fileName);
File f2 = new File(directory.getParent()+File.separator +
						"rename" + File.separator + fileName + ".apk");

f1.renameTo(f2);

创建新旧File对象,然后使用renameTo方法即可完成。

文件夹下所有文件重命名

我们需要对文件夹下所有文件重命名,于是我想不就是获取文件夹路径,然后对文件夹中所有文件遍历一下一个个改吗,于是,我就按下面的实现了。

for(int i = 0;i < directory.list().length;i++){
	String fileName = directory.list()[i];
	
	File f1 = new File(directory.getPath() + File.separator + fileName);		
    File f2 = new File(directory.getParent()+File.separator +
				"rename" + File.separator + fileName + ".apk");

	f1.renameTo(f2);
}

结果,我发现这个实现方法只能对一半文件重命名,这就很奇怪了,明明每一个都应该遍历到的呀。

后来我分析应该是,每次重命名一个文件后,原来的文件就删除了,重新创建了一个新的文件,那么文件的index也就发生了变化,所以这种便利方法是不对的。

采用Iterator的方法遍历就可以不需要显示计数器,按位置访问数据,实现如下:

for(File file: directory.listFiles()){
	String fileName = file.getName();

	File f1 = new File(directory.getPath() + File.separator + fileName);
	File f2 = new File(directory.getParent()+File.separator +
				"rename" + File.separator + fileName + ".apk");

	f1.renameTo(f2);
}
点击查看评论

所有文章