当前位置: 代码迷 >> J2SE >> 关于文件操作renameTo()步骤
  详细解决方案

关于文件操作renameTo()步骤

热度:451   发布时间:2016-04-23 19:55:16.0
关于文件操作renameTo()方法
/*
将f:\java里的.java文件复制到f:\jad文件夹中并修改后缀名为.jad

分析:
封装数据源和目的地
遍历获取.java文件复制到f:\jad文件夹中
在修改名字 

String[] filenamearray = file.list(new FilenameFilter() {
public boolean accept(File dir,String name) {

}
});
*/

import java.io.IOException;
import java.io.File;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;

public class CopyAndRename {
public static void main(String[] args) throws IOException {
//封装数据源和目的地
File srcfile = new File("f:\\java");
File destfile = new File("f:\\jad");

//调用方法来复制并修改后缀
CopyAndRename.copy(srcfile,destfile);

File[] destfilearray = destfile.listFiles();
for(File file : destfilearray) {
String name = file.getName();
String newname = name.replace(".java",".jad");

File newFile = new File(destfile,newname);
file.renameTo(newFile);
System.out.println(file.getName() + "---" +file.renameTo(newFile));
}
}

//遍历多级文件夹,并复制以.java结尾的文件至目的地destfile
public static void copy(File srcfile,File destfile) throws IOException {
if(!destfile.exists()) {
destfile.mkdir();
}
//获取源文件中的文件和文件夹对象
File[] filearray = srcfile.listFiles();
BufferedReader br = null;
BufferedWriter bw = null;
for(File file : filearray) {
if(file.isFile()) {
String name = file.getName();
if(name.endsWith(".java")) {
br = new BufferedReader(new FileReader(new File(srcfile,name)));
bw = new BufferedWriter(new FileWriter(new File(destfile,name)));

String line = null;
while((line = br.readLine()) != null) {
//三句连写
bw.write(line);
bw.newLine();
bw.flush();
}
}
}


if(file.isDirectory()) {
//如果是文件夹在遍历并复制里面的.java文件并存放在destfile
copy(file,destfile);
}

}

if(br != null && bw != null) {
br.close();
bw.close();
}
}
}


 为什么都改名都是false啊  求大神求解 谢谢!

------解决思路----------------------
file.renameTo(newFile);
System.out.println(file.getName() + "---" +file.renameTo(newFile));
重复了,只能rename一次
------解决思路----------------------
用一个boolean变量接收重命名的操作结果,然后输出,不要再调用一个renameTo()。

File newFile = new File(destfile,newname);
boolean res = file.renameTo(newFile);
System.out.println(file.getName() + "---"  + res );