把C盘中的一个多层文件夹拷贝到D盘中 黑马程序员

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------



class CopyWenJianJia

{

        public static void main(String[] args)throws Exception

        {

                //源文件夹

                String yuan = "C:\\nimeizide";

                //目的地

                String mudi = "D:\\nimeizide";

                //建立目标文件夹

                (new File(mudi)).mkdirs();

                //获取源文件夹当下的文件或目录

                File[] files = (new File(yuan)).listFiles();

                for(File file : files)

                {

                        if(file.isDirectory())

                        {

                                String yuanDir = yuan + "\\" + file.getName();

                                String mudiDir = mudi + "\\" + file.getName();

                                //复制目录

                                copyDir(yuanDir, mudiDir);

                        }

                        else

                        {

                                copyFile(file, new File(mudi + "\\" + file.getName()));

                        }

                }



        }

        //复制文件夹

        public static void copyDir(String yuanDir, String mudiDir)throws Exception

        {

                (new File(mudiDir)).mkdirs();

                File[] files = (new File(yuanDir)).listFiles();

                for(File file : files)

                {

                        if(file.isFile())

                        {

                                File yuanFile = file;//源文件

                                File mudiFile = new File(new File(mudiDir).getAbsolutePath() + "\\" + file.getName());

                                copyFile(yuanFile, mudiFile);

                        }

                        else

                        {

                                String yuanJia = yuanDir + "\\" + file.getName();

                                String mudiJia = mudiDir + "\\" + file.getName();

                                copyDir(yuanJia, mudiJia);

                        }

                }

        }

        //复制文件

        public static void copyFile(File yuanFile, File mudiFile)throws Exception

        {

                BufferedInputStream buis = new BufferedInputStream(new FileInputStream(yuanFile.getAbsoluteFile()));

                BufferedOutputStream buos = new BufferedOutputStream(new FileOutputStream(mudiFile.getAbsoluteFile()));

                byte[] buf = new byte[1024];

                int len;

                while((len = buis.read(buf)) != -1)

                {

                        buos.write(buf, 0, len);

                        buos.flush();

                }

                buis.close();

                buos.close();

        }



}





---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------

 

你可能感兴趣的:(程序员)