public static void main(String[] args) throws Exception{
//定义集合存储Java文件的名字
ArrayList<File> al = new ArrayList<File>();
//源文件路径
File src = new File("d:\\1");
//目的文件路径
File des = new File("d:\\2");
if(des.exists())
myDel(des);
des.mkdirs();
//将源文件中的Java文件的名字存入到集合中
fileToList(src,al);
//高级for循环遍历集合中Java文件的名字
for(File fileName : al){
//将源文件中的Java文件存入到目的文件夹中
writeTofile(src,fileName.getParentFile(), des, fileName);
}
}
//将源文件中的Java文件的名字存入到集合中
public static void fileTolist(File file,List<File> list){
//获取源文件夹中的文件
File[] files = file.listFiles();
//遍历文件并将文件的Java文件的名字存入到集合中
for(File f : files)
{
if(f.isDirectory()){
System.out.println("dir "+file.getName());
fileTolist(f,list); //递归调用本身
}
else
{
System.out.println("file "+file.getName());
if(file.getName().endsWith(".java"))
list.add(f.getAbsoluteFile());
}
}
}
public static void fileToList(File dir,List<File> list)
{
File[] files = dir.listFiles();
for(File file : files)
{
if(file.isDirectory()){
// System.out.println("dir "+file.getName());
fileToList(file,list); //递归调用本身
}
else
{
// System.out.println("file "+file.getName());
if(file.getName().endsWith(".java"))
list.add(file);
}
}
}
public static void myDel(File f){
File[] file = f.listFiles();
for(File fl:file){
if(fl.isDirectory()){
myDel(fl);
}
fl.delete();
}
f.delete();
}
//将源文件中的Java文件存入到目的文件夹中
public static void writeTofile(File src,File srcAll,File des, File fileName)throws Exception{
String s=src.getAbsolutePath();
String sAll = srcAll.getAbsolutePath();
String str=new String(sAll.toCharArray(),s.length(),sAll.length()-s.length());
String fileNameToString =fileName.getName().replace(".java", ".txt");
//定义带缓冲的读对象
BufferedReader bfr = new BufferedReader(new FileReader(new File(srcAll, fileName.getName())));
File newFile = new File(des.getAbsolutePath()+str);
if(!newFile.exists())
newFile.mkdirs();
System.out.println(newFile);
//定义写对象
BufferedWriter bfw = new BufferedWriter(new FileWriter(new File(newFile,fileNameToString)));
//单行内容临时存放处
String line = null;
//单行读写
while((line=bfr.readLine())!=null){
bfw.write(line);
bfw.newLine();
bfw.flush();
}
//关闭读写对象
bfw.close();
bfr.close();
}
java程序实现“深度复制文件夹"
最新推荐文章于 2022-04-18 17:02:57 发布