2018-06-09
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);
}