关于文件操作renameTo()方法

bkhefeixueyuan 2015-04-01 01:27:28
/*
将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啊 求大神求解 谢谢!
...全文
160 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
三仙半 2015-04-01
  • 打赏
  • 举报
回复
用一个boolean变量接收重命名的操作结果,然后输出,不要再调用一个renameTo()。

File newFile = new File(destfile,newname);
boolean res = file.renameTo(newFile);
System.out.println(file.getName() + "---"  + res );
淡定的峰哥 2015-04-01
  • 打赏
  • 举报
回复
file.renameTo(newFile); System.out.println(file.getName() + "---" +file.renameTo(newFile)); 重复了,只能rename一次

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧