`
lushuaiyin
  • 浏览: 675636 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

复制文件夹或文件夹

 
阅读更多

packagecom.xuanwu.mtoserver.util;

importjava.io.*;

/**
*
@authorToby复制文件夹或文件夹
*/
publicclassFileUtil{

publicstaticvoidmain(Stringargs[])throwsIOException{
//源文件夹
Stringurl1="D:/user/test/";
//目标文件夹
Stringurl2="D:/user/testcopy/";
//创建目标文件夹
(newFile(url2)).mkdirs();
//获取源文件夹当前下的文件或目录
File[]file=(newFile(url1)).listFiles();
for(inti=0;i<file.length;i++){
if(file[i].isFile()){
//复制文件
Stringtype=file[i].getName().substring(file[i].getName().lastIndexOf(".")+1);

if(type.equalsIgnoreCase("txt"))//转码处理
copyFile(file[i],newFile(url2+file[i].getName()),MTOServerConstants.CODE_UTF_8,MTOServerConstants.CODE_GBK);
else
copyFile(file[i],
newFile(url2+file[i].getName()));
}
if(file[i].isDirectory()){
//复制目录
StringsourceDir=url1+File.separator+file[i].getName();
StringtargetDir
=url2+File.separator+file[i].getName();
copyDirectiory(sourceDir,targetDir);
}
}
}

//复制文件
publicstaticvoidcopyFile(FilesourceFile,FiletargetFile)throwsIOException{
BufferedInputStreaminBuff
=null;
BufferedOutputStreamoutBuff
=null;
try{
//新建文件输入流并对它进行缓冲
inBuff=newBufferedInputStream(newFileInputStream(sourceFile));

//新建文件输出流并对它进行缓冲
outBuff=newBufferedOutputStream(newFileOutputStream(targetFile));

//缓冲数组
byte[]b=newbyte[1024*5];
intlen;
while((len=inBuff.read(b))!=-1){
outBuff.write(b,
0,len);
}
//刷新此缓冲的输出流
outBuff.flush();
}
finally{
//关闭流
if(inBuff!=null)
inBuff.close();
if(outBuff!=null)
outBuff.close();
}
}

//复制文件夹
publicstaticvoidcopyDirectiory(StringsourceDir,StringtargetDir)throwsIOException{
//新建目标目录
(newFile(targetDir)).mkdirs();
//获取源文件夹当前下的文件或目录
File[]file=(newFile(sourceDir)).listFiles();
for(inti=0;i<file.length;i++){
if(file[i].isFile()){
//源文件
FilesourceFile=file[i];
//目标文件
FiletargetFile=newFile(newFile(targetDir).getAbsolutePath()+File.separator+file[i].getName());
copyFile(sourceFile,targetFile);
}
if(file[i].isDirectory()){
//准备复制的源文件夹
Stringdir1=sourceDir+"/"+file[i].getName();
//准备复制的目标文件夹
Stringdir2=targetDir+"/"+file[i].getName();
copyDirectiory(dir1,dir2);
}
}
}

/**
*
*
@paramsrcFileName
*
@paramdestFileName
*
@paramsrcCoding
*
@paramdestCoding
*
@throwsIOException
*/
publicstaticvoidcopyFile(FilesrcFileName,FiledestFileName,StringsrcCoding,StringdestCoding)throwsIOException{//把文件转换为GBK文件
BufferedReaderbr=null;
BufferedWriterbw
=null;
try{
br
=newBufferedReader(newInputStreamReader(newFileInputStream(srcFileName),srcCoding));
bw
=newBufferedWriter(newOutputStreamWriter(newFileOutputStream(destFileName),destCoding));
char[]cbuf=newchar[1024*5];
intlen=cbuf.length;
intoff=0;
intret=0;
while((ret=br.read(cbuf,off,len))>0){
off
+=ret;
len
-=ret;
}
bw.write(cbuf,
0,off);
bw.flush();
}
finally{
if(br!=null)
br.close();
if(bw!=null)
bw.close();
}
}

/**
*
*
@paramfilepath
*
@throwsIOException
*/
publicstaticvoiddel(Stringfilepath)throwsIOException{
Filef
=newFile(filepath);//定义文件路径
if(f.exists()&&f.isDirectory()){//判断是文件还是目录
if(f.listFiles().length==0){//若目录下没有文件则直接删除
f.delete();
}
else{//若有则把文件放进数组,并判断是否有下级目录
FiledelFile[]=f.listFiles();
inti=f.listFiles().length;
for(intj=0;j<i;j++){
if(delFile[j].isDirectory()){
del(delFile[j].getAbsolutePath());
//递归调用del方法并取得子目录路径
}
delFile[j].delete();
//删除文件
}
}
}
}
}




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics