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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

五一技术分大派送之三(该题最多可以获取10个技术分)
http://bbs.itheima.com/thread-116285-1-1.html

(出处: 黑马程序员IT技术论坛)


11 个回复

倒序浏览
沙发,来看看
回复 使用道具 举报
qiu bu hei            
回复 使用道具 举报
再看看               
回复 使用道具 举报
  1. package luntan;

  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;

  6.          
  7.          /*
  8.          1,建立目的目录。
  9.         2,遍历源目录。
  10.         3,遍历过程中,创建文件或者文件夹。
  11.          原理:其实就是改变了源文件或者目录的目录头。
  12.         */
  13.         class  CopyDir
  14.          {
  15.          private File sDir,dDir,newDir;
  16.          CopyDir(String s,String d)
  17.          {
  18.          this(new File(s),new File(d));
  19.          }
  20.          CopyDir(File sDir,File dDir)//c:\\Test  d:\\abc
  21.          {
  22.          this.sDir = sDir;
  23.          this.dDir = dDir;
  24.          }
  25.          public void copyDir()throws IOException
  26.          {
  27.          //是创建目的目录。也就是创建要拷贝的源文件夹。Test
  28.          //获取源文件夹名称。
  29.         String name = sDir.getName();
  30.          //通过该名称在目的目录创建该文件夹,为了存放源文件夹中的文件或者文件夹。
  31.         //将目的目录和源文件夹名称,封装成File对象。
  32.         newDir = new File(dDir,name);
  33.          //调用该对象的mkdir方法。在目的目录创建该文件夹。d:\\abc\\Test
  34.          newDir.mkdir();//

  35.          //遍历源文件夹。
  36.         listAll(sDir);
  37.          }
  38.          /*
  39.         将遍历目录封装成方法。
  40.          在遍历过程中,遇到文件创建文件。
  41.          遇到目录创建目录。
  42.         */
  43.         private void listAll(File dir)throws IOException
  44.          {
  45.          File[] files = dir.listFiles();
  46.          for(int x=0; x<files.length; x++)
  47.          {
  48.          if(files[x].isDirectory())
  49.          {
  50.          createDir(files[x]);//调用创建目录的方法。
  51.         listAll(files[x]);//在继续进行递归。进入子级目录。
  52.         }
  53.         else
  54.          {
  55.          createFile(files[x]);//调用创建文件的方法。
  56.         }
  57.          }
  58.          }
  59.          /*
  60.         copy目录。通过源目录在目的目录创建新目录。
  61.         */
  62.         private void createDir(File dir)
  63.          {
  64.          File d = replaceFile(dir);
  65.          d.mkdir();
  66.          }
  67.          /*
  68.          copy文件。
  69.         */
  70.         private void createFile(File file)throws IOException
  71.          {
  72.          File newFile = replaceFile(file);
  73.          //copy文件是一个数据数据传输的过程。需要通过流来完成。
  74.         FileInputStream fis = new FileInputStream(file);
  75.          FileOutputStream fos = new FileOutputStream(newFile);
  76.          byte[] buf = new byte[1024*2];
  77.          int num = 0;
  78.          while((num=fis.read(buf))!=-1)
  79.          {
  80.          fos.write(buf,0,num);
  81.          }
  82.          fos.close();
  83.          fis.close();
  84.          }
  85.          /*
  86.         替换路径。
  87.         */
  88.         private File replaceFile(File f)
  89.          {
  90.          //原理是:将源目录的父目录(C:\\Tset),替换成目的父目录。(d:\\abc\\Test)
  91.         String path = f.getAbsolutePath();//获取源文件或者文件夹的决定路径。
  92.         //将源文件或者文件夹的绝对路径替换成目的路径。
  93.         String newPath = path.replace(sDir.getAbsolutePath(),newDir.getAbsolutePath());
  94.          //将新的目的路径封装成File对象
  95.         File newFile = new File(newPath);
  96.          return newFile;
  97.          }
  98.          }

  99. //主函数调用
  100. package luntan;

  101. import java.io.IOException;

  102. public class copy2Test {

  103.          public static void main(String[] args)throws IOException
  104.          {
  105.          //File s = new File("c:\\Test");
  106.          //File d = new File("d:\\abc");
  107.          new CopyDir("c:\\Drivers","d:\\").copyDir();
  108.          //System.out.println("Hello World!");
  109.          }
  110.          }
复制代码

[password][/password]



评分

参与人数 1技术分 +1 收起 理由
王震阳老师 + 1 赞一个!

查看全部评分

回复 使用道具 举报
看看题目,谢谢楼主活动
回复 使用道具 举报
看看题目再说
回复 使用道具 举报
看看题目再说
回复 使用道具 举报
看看题目再说
回复 使用道具 举报
看看题目啊
回复 使用道具 举报
吼吼吼,新人前来报道
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马