復制一個文件夾下所有文件(包括子文件夾)並修改文件后綴名 java實現加密文檔unlock


import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;


public class ceshi {

public  File originFile;
public  File targetFile;

public ceshi(){};
public ceshi(String origin,String target){
this.originFile=new File(origin);
this.targetFile=new File(target);
}

//copy文件夾並copy文件
public  void copyAll(File file){
//得到origin文件夾所有file
File[] fileList=file.listFiles();
for(File f:fileList){
//得到copy源文件路徑
String from =f.getAbsolutePath();

//得到輸出文件夾路徑
String to=from.replace(originFile.getAbsolutePath(), targetFile.getAbsolutePath());

if(f.isDirectory()){
File toDir=new File(to);
toDir.mkdirs();
copyAll(f);
}else{
//創建輸出文件夾
int a=to.lastIndexOf("\\");
String toPath=to.substring(0,a);
File toDir=new File(toPath);
toDir.mkdirs();

//修改文件后綴名doc=wow;xls=lol;ppt=dnf;pdf=threekindom
if(to.substring(to.lastIndexOf(".")+1).equals("doc") || to.substring(to.lastIndexOf(".")+1).equals("docx")){
to=to.substring(0, to.lastIndexOf("."))+".wow";
}else if(to.substring(to.lastIndexOf(".")+1).equals("xls") || to.substring(to.lastIndexOf(".")+1).equals("xlsx")){
to=to.substring(0, to.lastIndexOf("."))+".lol";
}else if(to.substring(to.lastIndexOf(".")+1).equals("ppt") || to.substring(to.lastIndexOf(".")+1).equals("pptx")){
to=to.substring(0, to.lastIndexOf("."))+".dnf";
}else if(to.substring(to.lastIndexOf(".")+1).equals("pdf")){
to=to.substring(0, to.lastIndexOf("."))+".threekindom";
}
else{
to=to.substring(0, to.lastIndexOf("."))+".games";
}

//復制文件迭代
copyFile(from, to);
}
}

}

//封裝好的 copy文件的方法
public  void copyFile(String from,String to){
InputStream in=null;
OutputStream out=null;

try {
in=new FileInputStream(from);
out=new FileOutputStream(to);
byte[] arr=new byte[1024];
int i=0;
while((i=in.read(arr))!=-1){
out.write(arr,0,i);
};

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(out!=null){
out.close();
}
if(in!=null){
in.close();
}

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

public static void main(String [] args){

ceshi c=new ceshi("d:\\lock","d:\\unlock");
c.copyAll(c.originFile);

}



}


//將修改過的文件后綴名修改回來:

import java.io.File;




public class Ok {

private File fromFile;

public Ok(){};
public Ok(String path){
File ff=new File(path);
this.fromFile=ff;
}


public void suffixProcess(File file){

File [] flist=file.listFiles();
for(File f:flist){
if(f.isFile()){
System.out.println("$$$$$$$$$$");
//得到當前文件絕對路徑
String path=f.getAbsolutePath();
//得到后綴
String suffix=path.substring(path.lastIndexOf(".")+1);
//解析后綴,還原文件
if(suffix.equals("wow")){
f.renameTo(new File(path.substring(0,path.lastIndexOf("."))+".doc"));
}else if(suffix.equals("lol")){
f.renameTo(new File(path.substring(0,path.lastIndexOf("."))+".xls"));
}else if(suffix.equals("dnf")){
f.renameTo(new File(path.substring(0,path.lastIndexOf("."))+".ppt"));
}else if(suffix.equals("threekindom")){
f.renameTo(new File(path.substring(0,path.lastIndexOf("."))+".pdf"));
}else{
f.renameTo(new File(path.substring(0,path.lastIndexOf("."))+".txt"));
}

}else{
suffixProcess(f);
}
}

}

public static void main(String [] args){

Ok ok=new Ok("d:\\unlock");
ok.suffixProcess(ok.fromFile);

}


}




注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com