Java程序复制多级文件夹并重命名的思路及源码

对于文件的操作,我们一定要明确的是该路径是可以指向特定的文件的,否则会报FileNoFoundException

File 的操作实质上是有文件的操作。


/*

 * 将D盘com文件夹中后缀为java的文件名后缀改为jad结尾的并复制到E盘中
 * 
 * 思路:
 * 
 *  A:封装目录和目的地
 *  B:获取目录下所有的后缀名为java的文件
 *      C:复制该文件到E盘
 *      D:修改后缀名
 *  
 */

import java.io.BufferedReader;

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


public class RenameDemo {
public static void main(String[] args) throws IOException {
//封装目录和目的地
File srcFolder = new File("D:\\com");
File destFolder = new File("E:\\com");

if (!destFolder.exists()) {
destFolder.mkdir();
}

copyFile(srcFolder, destFolder);

rename(destFolder);


}

private static void rename(File destFolder) {
//获取目录下所有的后缀名为java的文件
File[] fileArr = destFolder.listFiles();
for(File file : fileArr){
if(file.isDirectory()){
rename(file);
}else{
String name = file.getAbsolutePath();
int index = name.indexOf('.');
String start = name.substring(0, index);
String newName = start+".jad";
File newFile = new File(newName);
file.renameTo(newFile);

}
}
}


public static void copyFile(File srcFolder,File destFolder) throws IOException{
//获取目录下所有的后缀名为java的文件
File[] fileArr = srcFolder.listFiles();
for(File file:fileArr){
if (file.isDirectory()) {
String name = file.getName();
File newFile = new File(destFolder,name);
newFile.mkdir();
copyFile(file, newFile);
}else{
if(file.getName().endsWith(".java")){
String name = file.getName();
File newFile = new File(destFolder,name);

BufferedReader br = new BufferedReader(new FileReader(file));
BufferedWriter bw = new BufferedWriter(new FileWriter(newFile));

String line;
while((line = br.readLine()) != null){
bw.write(line);
bw.newLine();
bw.flush();
}

bw.close();
br.close();
}
}
}

}
}

猜你喜欢

转载自blog.csdn.net/linkeliuyun/article/details/80231140
今日推荐