zoukankan      html  css  js  c++  java
  • Java 平时作业五

    使用 I/O 流和文件对象实现目录备份功能。

     1 package asg5;
     2 import java.io.File;
     3 import java.io.FileInputStream;
     4 import java.io.FileOutputStream;
     5 import java.io.IOException;
     6 public class copyFileDir {
     7     
     8 
     9     
    10         public static void main(String[] args) throws IOException
    11         {
    12             copyDir("D:\大二\java\Java程序设计课件", "D:\大二\java\1");
    13         }
    14         /**
    15          * 使用递归复制目录,
    16          * 
    17          * @param FromDir
    18          *            源目录的路径名称
    19          * @param ToDir
    20          *            目的目录的路径名称
    21          * @throws IOException
    22          */
    23         public static void copyDir(String FromDir, String ToDir) throws IOException
    24         {
    25             // 创建目录的File对象
    26             File srcDir = new File(FromDir);
    27             // 判断源目录是不是一个目录
    28             if (!srcDir.isDirectory())
    29             {
    30                 // 如果不是目录那就不复制
    31                 return;
    32             }
    33             // 创建目的目录的File对象
    34             File destDir = new File(ToDir);
    35             // 如果目的目录不存在
    36             if (!destDir.exists())
    37             {
    38                 // 创建目的目录
    39                 destDir.mkdir();
    40             }
    41 
    42             // 获取源目录下的File对象列表,每一个对象代表一个目录或者文件
    43             File[] srcDirList = srcDir.listFiles();
    44             // 遍历源目录File对象列表
    45             for (int i = 0; i < srcDirList.length; i++)
    46             {
    47                 // 如果是目录的话
    48                 if (srcDirList[i].isDirectory())
    49                     
    50                 {
    51                     // 递归调用复制该目录
    52                     copyDir(FromDir + File.separator + srcDirList[i].getName(),
    53                             ToDir + File.separator + srcDirList[i].getName());
    54                 }
    55                 // 如果是文件的话
    56                 if (srcDirList[i].isFile())
    57                 {
    58                     // 调用复制文件的方法
    59                     copyFile(FromDir + File.separator + srcDirList[i].getName(),
    60                             ToDir + File.separator + srcDirList[i].getName());
    61                 }
    62 
    63             }
    64         }
    65         /**
    66          * 复制一个文件
    67          * 
    68          * @param srcFile
    69          *            源文件
    70          * @param destFile
    71          *            目的文件
    72          * @throws IOException
    73          */
    74         public static void copyFile(String srcFile, String destFile)
    75                 throws IOException
    76         {
    77             FileInputStream in = new FileInputStream(srcFile);
    78             FileOutputStream out = new FileOutputStream(destFile);
    79             // 2097152(Byte)=2048(KB)=2M
    80             byte[] buffer = new byte[2097152];
    81             int size = 0;
    82             // 每次读取一个字节数组
    83             while ((size = in.read(buffer)) != -1)
    84             {
    85                 // 读到多少写入多少
    86                 out.write(buffer, 0, size);
    87             }
    88             in.close();
    89             out.close();
    90         }
    91 
    92     }
    93     

    用户指定源目录、目标目录以及备份文 件类型(如果是任意文件使用通配符*号),通过此程序可将源目录及其所有子目录 下的指定类型文件保存到目标目录

  • 相关阅读:
    Dynamics AX 2012 R2 配置E-Mail模板
    Dynamics AX 2012 R2 设置E-Mail
    Dynamics AX 2012 R2 为运行失败的批处理任务设置预警
    Dynamics AX 2012 R2 耗尽用户
    Dynamics AX 2012 R2 创建一个专用的批处理服务器
    Dynamics AX 2012 R2 创建一个带有负载均衡的服务器集群
    Dynamics AX 2012 R2 安装额外的AOS
    Dynamics AX 2012 R2 将系统用户账号连接到工作人员记录
    Dynamics AX 2012 R2 从代码中调用SSRS Report
    Dynamics AX 2012 R2 IIS WebSite Unauthorized 401
  • 原文地址:https://www.cnblogs.com/BigWatermelon/p/10679904.html
Copyright © 2011-2022 走看看