一.思路 

  * 文件夹的拷贝
  1.递归查找子孙级文件
  2.文件复制
  文件夹创建

二.代码  

  

  1. package com.ahd.File;
  2.  
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.FileNotFoundException;
  6. import java.io.FileOutputStream;
  7. import java.io.IOException;
  8. import java.io.InputStream;
  9. import java.io.OutputStream;
  10.  
  11. /***
  12. * 文件夹的拷贝
  13. 1.递归查找子孙级文件
  14. 2.文件复制
  15. 文件夹创建
  16.  
  17. * @author Administrator
  18. *
  19. */
  20. public class CopyDirDemo {
  21. public static void main(String[] args) {
  22. //源文件夹
  23. File src = new File("D:\\web13\\src");
  24. //目标文件夹
  25. File dest = new File("D:\\");
  26.  
  27. try {
  28. copyDir(src,dest);
  29. } catch (IOException e) {
  30. // TODO Auto-generated catch block
  31. e.printStackTrace();
  32. }
  33. }
  34. /***
  35. *
  36. * @param src
  37. * @param dest
  38. * @throws IOException
  39. */
  40. public static void copyDir(File src, File dest) throws IOException {
  41. // TODO Auto-generated method stub
  42. //判断源文件夹是否是一个文件夹
  43. if(src.isDirectory()){
  44. dest=new File(dest,src.getName());
  45. //在目标文件夹中创建文件夹
  46. dest.mkdirs();
  47. //获取原文件架中所有文件,文件并拷贝,文件夹创建
  48. for(File f:src.listFiles()){
  49. copyDir(f,new File(dest,f.getName()));
  50. }
  51. }else if(src.isFile()){
  52. copyFile(src,dest);
  53. }
  54.  
  55. }
  56. /***
  57. * 拷贝文件
  58. * @param src
  59. * @param dest
  60. * @throws IOException
  61. */
  62. public static void copyFile(File src,File dest) throws IOException{
  63. if(dest.isDirectory()){
  64. try {
  65. throw new Exception("目标是文件夹,不能拷贝");
  66. } catch (Exception e) {
  67. // TODO Auto-generated catch block
  68. e.printStackTrace();
  69. }
  70. }
  71. if(src.isFile()){
  72. //创建流
  73. InputStream is=new FileInputStream(src);
  74. OutputStream os=new FileOutputStream(dest);
  75. //拷贝
  76. //一次拷贝字节数
  77. byte []b=new byte[1024];
  78. //记录字节数
  79. int len=0;
  80. while(-1!=(len=is.read(b))){
  81. os.write(b,0,len);
  82. }
  83. //关闭流
  84. os.close();
  85. is.close();
  86. }else{
  87. System.out.println("错误,不是文件");
  88. }
  89.  
  90. }
  91. }

copy

Java_文件夹拷贝的更多相关文章

  1. IO文件夹拷贝(文件内含有文件和文件夹)

    /** * 文件夹拷贝(文件内含有文件和文件夹) * * @param src * @param des */ private static void copy(String src, String ...

  2. linux两台服务器之间文件/文件夹拷贝

    跨服务器拷贝需要用到的命令是scp. ----------------------拷贝文件夹---------------------------------------------- 把当前文件夹t ...

  3. Java_文件夹分割与合并

    一.思路: 1.文件切割: 使用类RandomAccessFile ,其中方法seek可以自定义读取位置,读一段,通过字节输出流(我使用BufferedOutputStream)写一段 2.文件合并 ...

  4. xampp 文件夹拷贝的注意事项。

    xampp可以同盘符拷贝,比如由A电脑的D:\XAMPP拷贝到B电脑的D:\XAMPP,此拷贝不用修改任何设置,当进行不同盘拷贝时,要修改apache和mysql下的一大堆conf文件,修改盘符: x ...

  5. linux服务器间文件夹拷贝

    要求,在A机器执行脚本,把A机器的某个目录文件拷贝到B机器. 第一版ftp实现: 1.A 机器先安装 ftp 客户端 $ sudo yum install ftp 2.B机器安装ftp服务端 $ su ...

  6. python文件处理-根据txt列表将文件从其他文件夹 拷贝到指定目录

    内容涉及:路径拼接,文件拷贝,内容追加(append) # !/usr/bin/python # -*- coding: UTF-8 -*- import pandas as pd import os ...

  7. mongoDB整个文件夹拷贝备份还原的坑

    现网有一个mongoDB数据库需要搬迁到新服务器,开发那边的要求是先搬迁现在的数据库过去,然后剩下的以后他们用程序同步. 数据库大楷20G左右,现网是主备仲裁的,停掉备点,拷贝了全部文件. 新服务器也 ...

  8. 两个linux之间拷贝文件及文件夹

    Linux为我们提供了两个用于文件copy的命令.一个是cp,一个是scp,可是他们略有不同,cp 主要是用于在同一台电脑上,在不同的文件夹之间来回copy文件 scp 主要是在不同的Linux系统之 ...

  9. Swift 拷贝文件夹,实现文件夹内容整体复制

    我们知道,在沙盒内,iOS要拷贝一个文件,可以使用 fileManager.copyItem(atPath: fullPath, toPath: fulltoPath) 方法简单实现,不过当我们要拷贝 ...

随机推荐

  1. C语言+嵌入式SQL+DB2开发经验总结

    1.使用DB2工具将SQC文件预编译成C文件和bnd文件. 命令: db2 prep ***.sqc version * package using * bindfile BLOCKING ALL I ...

  2. 使用 shell 在多服务器上批量操作

    需求 日常工作中,我们常需要同时在多台服务器上执行同样的命令,如对比日志.检查服务等.这就需要我们有服务器批量操作的能力. 两年前写过一篇文章,shell实现SSH自动登陆 使用 shell 的 ex ...

  3. Ubuntu 16.04下Samba服务器搭建和配置(配截图)

    一.相关介绍 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和 ...

  4. 【百度杯】ctf夺旗大战,16万元奖励池等你拿

    寻找安全圈内最会夺flag的CTF职业玩家,将以个人方式参与夺旗,完全凭借个人在CTF中的技艺及造诣获得奖金回报. 周末少打一局LOL,玩一玩CTF也能挣个万元零花钱! **比赛时间: 9月至17年3 ...

  5. 搞Java的年薪 40W 是什么水平?

    既然楼主提到年薪40w,那我们看看什么公司,什么级别可以给到,再看看要求.阿里是Java大厂,所以可以参考阿里的标准. 阿里一般是16薪水,所以就是税前2.5w,在阿里应该是P6就可以达到,而对P6的 ...

  6. FFmpeg 学习(二):Mac下安装FFmpeg

    一.安装ffmpeg 分为两种安装方式: 1. 命令行安装 brew install ffmpeg 2. 下载压缩包安装 去 http://evermeet.cx/ffmpeg/ 下载7z压缩包,解压 ...

  7. Android7.0适配APK安装

    Android7.0适配APK安装 适配的原因 对于面向Android7.0的应用,Android框架执行的StrictMode API政策禁止在您的应用外部公开file://URL.如果一项包含文件 ...

  8. 免费开源的diff软件“meld”-替代beyond compare的神器

    命令行直接对比文件 meld dir1 dir2 & 1,安装 mld, 可以选择windows, linux, macos系统,都有提供安装. ubuntu 中安装: sudo apt-ge ...

  9. iOS学习——(转)NSObject详解

    本文主要转载自:ios开发 之 NSObject详解 NSObject是大部分Objective-C类继承体系的根类.这个类遵循NSObject协议,提供了一些通用的方法,对象通过继承NSObject ...

  10. Canny提取图像轮廓

    #include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgu ...