package cn.transfor;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Transfor {
private InputStream input;
private OutputStream output;
private static int length;
private String sourceFolder = "C:\\Users\\zihui\\Desktop\\TransTest\\modules_47_190417";
private String destinationFolder = "C:\\Users\\zihui\\Desktop\\TransTest\\modules_new";
public void getFileList() throws IOException {
File createDestinationFolder = new File(destinationFolder);
if(!createDestinationFolder.exists()) {
createDestinationFolder.mkdirs();
}
File s_dir = new File(sourceFolder);
File[] files = s_dir.listFiles();
if(files != null) {
for(int i = 0 ; i < files.length ; i++) {
String fileName = files[i].getName();
if(files[i].isDirectory()) {
String d_folder_second = destinationFolder+"\\"+fileName;
File d_dir_second = new File(d_folder_second);
if(!d_dir_second.exists()) {
d_dir_second.mkdir();
}
String s_folder_second = sourceFolder+"\\"+fileName;
File s_dir_second = new File(s_folder_second);
File[] second_files = s_dir_second.listFiles();
if(second_files != null) {
for(int j = 0 ; j < second_files.length ; j++) {
String fileName_second = second_files[j].getName();
boolean isDirectory = second_files[j].isDirectory();
if(isDirectory && "classes".equals(fileName_second)) {
String d_folder_three = d_folder_second+"\\src\\public";
File d_dir_three = new File(d_folder_three);
if(!d_dir_three.exists()) {
d_dir_three.mkdirs();
}
String beginFilename = s_folder_second+"\\"+fileName_second;
String endFilename = d_folder_three;
cycleCopyFiles(beginFilename, endFilename);
} else if(isDirectory && "client".equals(fileName_second)) {
String d_folder_three = d_folder_second+"\\src\\client";
File d_dir_three = new File(d_folder_three);
if(!d_dir_three.exists()) {
d_dir_three.mkdirs();
}
String beginFilename = s_folder_second+"\\"+fileName_second+"\\classes";
String endFilename = d_folder_three;
cycleCopyFiles(beginFilename, endFilename);
} else if(isDirectory && "META-INF".equals(fileName_second)) {
String s_folder_three = s_folder_second+"\\"+fileName_second;
File s_dir_three = new File(s_folder_three);
File[] metainf_files = s_dir_three.listFiles();
if(metainf_files != null) {
for(int k = 0 ; k < metainf_files.length ; k++) {
String metainf_fileName = metainf_files[k].getName();
if(metainf_files[k].isDirectory() && "classes".equals(metainf_fileName)) {
String d_folder_three = d_folder_second+"\\src\\private";
File d_dir_three = new File(d_folder_three);
if(!d_dir_three.exists()) {
d_dir_three.mkdirs();
}
String beginFilename = s_folder_three+"\\classes";
String endFilename = d_folder_three;
cycleCopyFiles(beginFilename, endFilename);
} else if(!metainf_files[k].isDirectory() && (metainf_fileName.endsWith(".upm") || metainf_fileName.endsWith(".aop"))) {
String metainfoPath = d_folder_second+"\\META-INF";
File mkMETAINF = new File(metainfoPath);
if(!mkMETAINF.exists()) {
mkMETAINF.mkdir();
}
String beginFilename = s_folder_three+"\\"+metainf_fileName;
String endFilename = metainfoPath+"\\"+metainf_fileName;
fileCopy(beginFilename, endFilename);
}
}
}
}
}
}
}
}
System.out.println("项目结构转换完成");
} else {
System.out.println("路径:" + s_dir + "下没有任何文件!");
}
}
public void fileCopy(String beginFilename, String endFilename) {
try {
input = new FileInputStream(beginFilename);
output = new FileOutputStream(endFilename);
try {
length = input.available();
byte[] buffer = new byte[length];
input.read(buffer);
output.write(buffer);
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (input != null && output != null) {
try {
input.close();
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public void cycleCopyFiles(String beginPath, String endPath) throws IOException {
File beginDir = new File(beginPath);
File[] beginDirFiles = beginDir.listFiles();
if(beginDirFiles != null) {
for(int i = 0 ; i < beginDirFiles.length ; i++) {
String nextName = beginDirFiles[i].getName();
if(beginDirFiles[i].isDirectory()) {
String newbeginPath = beginPath+"\\"+nextName;
String newendPath = endPath+"\\"+nextName;
File create = new File(newendPath);
create.mkdir();
cycleCopyFiles(newbeginPath, newendPath);
} else {
String newCopyFile1 = beginPath+"\\"+nextName;
String newCopyFile2 = endPath+"\\"+nextName;
fileCopy(newCopyFile1, newCopyFile2);
}
}
}
}
public static void main(String[] args) {
Transfor tf = new Transfor();
try {
tf.getFileList();
} catch (IOException e) {
e.printStackTrace();
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)