A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 王震阳老师   /  2014-4-30 10:34  /  54404 人查看  /  602 人回复  /   4 人收藏 转载请遵从CC协议 禁止商业使用本文

看看题,学习一下
回复 使用道具 举报
这个很容易吧
回复 使用道具 举报
看看题目是啥样
回复 使用道具 举报
基础都能领?
回复 使用道具 举报
快点回复!
回复 使用道具 举报
进来看看!
回复 使用道具 举报

答案呈上,新人求罩

FileCopyTest.rar

2.27 KB, 阅读权限: 100, 下载次数: 1

评分

参与人数 1技术分 +5 收起 理由
王震阳老师 + 5 继续努力

查看全部评分

回复 使用道具 举报
111111111111111
回复 使用道具 举报
回复看题
回复 使用道具 举报
交作业了

LX3.zip

1.31 KB, 阅读权限: 100, 下载次数: 1

评分

参与人数 1技术分 +5 收起 理由
王震阳老师 + 5 很给力!

查看全部评分

回复 使用道具 举报
  1. package cn.itcast.test;

  2. import java.io.*;

  3. public class Copy {
  4.        
  5.         public static void main(String[] args)throws Exception
  6.         {       
  7.                 /*
  8.                  * ①首先你要输入一个c盘的文件夹,一直到你输入正确为止
  9.                  * */
  10.                 System.out.println("请输入C盘的一个文件夹目录(悠着点,文件夹太大时间长):");
  11.                 BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
  12.                 String olddir=null;
  13.                 File cfile=null;
  14.                 while((olddir=bufr.readLine())!=null)
  15.                 {
  16.                        
  17.                         cfile=new File(olddir);
  18.                        
  19.                        
  20.                         if(cfile.isDirectory())
  21.                         {
  22.                                 File dfile=changeDir(cfile);
  23.                                 dfile.mkdir();
  24.                                 break;       
  25.                         }
  26.                         else
  27.                                 System.out.println("该路径不存在,请重新输入:");
  28.                 }
  29.                 /*
  30.                  * ②调用copy函数,将C盘文件夹复制到D盘
  31.                  * */
  32.                 copy(cfile);
  33.         }
  34.        
  35.         public static void copy(File dir)throws Exception
  36.         {
  37.                 File[] files=dir.listFiles();
  38.                
  39.                 for(int i=0;i<files.length;i++)
  40.                 {
  41.                         if(files[i].isDirectory())
  42.                         {
  43.                                 //在D盘创建文件夹
  44.                                 File newfile=changeDir(files[i]);
  45.                                 newfile.mkdir();
  46.                                 copy(files[i]);
  47.                                
  48.                         }else{
  49.                                
  50.                                 //把文件复制到D盘相应的路径下
  51.                                 File newfile=changeDir(files[i]);
  52.                                
  53.                                 BufferedReader bufIn=
  54.                                         new BufferedReader(new InputStreamReader(new FileInputStream(files[i])));
  55.                                 PrintWriter pw=
  56.                                         new PrintWriter(new FileOutputStream(newfile));
  57.                                
  58.                                 String line=null;
  59.                                
  60.                                 while((line=bufIn.readLine())!=null)
  61.                                 {
  62.                                         pw.println(line);
  63.                                 }
  64.                                 bufIn.close();
  65.                                 pw.close();
  66.                                
  67.                         }
  68.                 }
  69.         }
  70.         //此函数负责将C盘的路径转换成D盘相应的路径
  71.         public static File changeDir(File oldfile)throws Exception
  72.         {
  73.                 String olddir=oldfile.getCanonicalPath();
  74.                
  75.                 char[] array=olddir.toCharArray();
  76.                
  77.                 array[0]='D';
  78.                
  79.                 String newdir=new String(array);
  80.                 File newfile=new File(newdir);
  81.                
  82.                 return newfile;
  83.         }
  84. }
复制代码
请大家多多指点

评分

参与人数 1技术分 +5 收起 理由
王震阳老师 + 5 很给力!

查看全部评分

回复 使用道具 举报
本帖最后由 满兴旺 于 2014-5-4 18:14 编辑
王震阳 发表于 2014-4-30 10:38
还在学习基础的童鞋们,快来领题吧
  1. package cn.itcast.test;

  2. import java.io.*;

  3. public class Copy {
  4.         
  5.         public static void main(String[] args)throws Exception
  6.         {        
  7.                 /*
  8.                  * ①首先你要输入一个c盘的文件夹,一直到你输入正确为止
  9.                  * */
  10.                 System.out.println("请输入C盘的一个文件夹目录(悠着点,文件夹太大时间长):");
  11.                 BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
  12.                 String olddir=null;
  13.                 File cfile=null;
  14.                 while((olddir=bufr.readLine())!=null)
  15.                 {
  16.                         
  17.                         cfile=new File(olddir);
  18.                         
  19.                         
  20.                         if(cfile.isDirectory())
  21.                         {
  22.                                 File dfile=changeDir(cfile);
  23.                                 dfile.mkdir();
  24.                                 break;        
  25.                         }
  26.                         else
  27.                                 System.out.println("该路径不存在,请重新输入:");
  28.                 }
  29.                 /*
  30.                  * ②调用copy函数,将C盘文件夹复制到D盘
  31.                  * */
  32.                 copy(cfile);
  33.         }
  34.         
  35.         public static void copy(File dir)throws Exception
  36.         {
  37.                 File[] files=dir.listFiles();
  38.                
  39.                 for(int i=0;i<files.length;i++)
  40.                 {
  41.                         if(files[i].isDirectory())
  42.                         {
  43.                                 //在D盘创建文件夹
  44.                                 File newfile=changeDir(files[i]);
  45.                                 newfile.mkdir();
  46.                                 copy(files[i]);
  47.                                 
  48.                         }else{
  49.                                 
  50.                                 //把文件复制到D盘相应的路径下
  51.                                 File newfile=changeDir(files[i]);
  52.                                 
  53.                                 BufferedReader bufIn=
  54.                                         new BufferedReader(new InputStreamReader(new FileInputStream(files[i])));
  55.                                 PrintWriter pw=
  56.                                         new PrintWriter(new FileOutputStream(newfile));
  57.                                 
  58.                                 String line=null;
  59.                                 
  60.                                 while((line=bufIn.readLine())!=null)
  61.                                 {
  62.                                         pw.println(line);
  63.                                 }
  64.                                 bufIn.close();
  65.                                 pw.close();
  66.                                 
  67.                         }
  68.                 }
  69.         }
  70.         //此函数负责将C盘的路径转换成D盘相应的路径
  71.         public static File changeDir(File oldfile)throws Exception
  72.         {
  73.                 String olddir=oldfile.getCanonicalPath();
  74.                
  75.                 char[] array=olddir.toCharArray();
  76.                
  77.                 array[0]='D';
  78.                
  79.                 String newdir=new String(array);
  80.                 File newfile=new File(newdir);
  81.                
  82.                 return newfile;
  83.         }

复制代码

我知道楼主很不容易,我们在这答题挣分的也很不容易。。。相互谅解吧
回复 使用道具 举报
领取中。。
回复 使用道具 举报
瞅瞅   ~~
回复 使用道具 举报
看那看看看
回复 使用道具 举报
看看看一下
回复 使用道具 举报
在哪里在哪里 我还是0分呢
回复 使用道具 举报
看看看看看看看看看看
回复 使用道具 举报
看看是什么题目
回复 使用道具 举报

你的答案执行起来是正确的,但是方法不是很好,如果是一个大型的文件系统,将所有的文件名都放在集合中是很耗费内存的事情,为何不迭代一个文件夹复制一个文件夹呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马