码迷,mamicode.com
首页 > 编程语言 > 详细

java 复制文件夹

时间:2015-01-21 18:14:06      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:java

//File.separator  斜杠使用 这个参数代替,解决java移植 到其其它平台兼容问题


                                String fsr=String.format("D:%sceshi", File.separator);//需要复制的文件夹 不包括ceshi
String tsr=String.format("D:%sDownloads", File.separator);//需要复制到的文件夹
File f=new File(fsr);
File t=new File(tsr);
if(f.exists()&&f.isDirectory())
{

File[] filelist=f.listFiles();
int fcout=filelist.length;
for(int i=0;i<fcout;i++)
{
fileChannelCopy(filelist[i],t);
}


    }




//复制文件夹的方法


public void fileChannelCopy(File s, File t) {


if(s.isDirectory())
{
File nf=new File(String.format(t.getPath()+File.separator+s.getName()));
if(!nf.exists())
{
nf.mkdir();
}

File[] filelist=s.listFiles();
for(File fi:filelist)
{
nf=new File(String.format(nf.getPath()));
fileChannelCopy(fi,nf);
}
}
else
{
        FileInputStream fi = null;


        FileOutputStream fo = null;


        FileChannel in = null;


        FileChannel out = null;


        try {
       t=new File(String.format(t.getPath()+File.separator+s.getName()));
            fi = new FileInputStream(s);


            fo = new FileOutputStream(t);


            in = fi.getChannel();//得到对应的文件通道


            out = fo.getChannel();//得到对应的文件通道


            in.transferTo(0, in.size(), out);//连接两个通道,并且从in通道读取,然后写入out通道


        } catch (IOException e) {


            e.printStackTrace();


        } finally {


            try {


                fi.close();


                in.close();


                fo.close();


                out.close();


            } catch (IOException e) {


                e.printStackTrace();


            }


        }
}


    }

java 复制文件夹

标签:java

原文地址:http://blog.csdn.net/wangzhiqiang123456/article/details/42971201

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!