目录操作工具类 CopyDir.java

  1. package com.util;
  2. import java.io.*;
  3. /**
  4. * 1,建立目的目录。 2,遍历源目录。 3,遍历过程中,创建文件或者文件夹。 原理:其实就是改变了源文件或者目录的目录头。
  5. * @datetime  Dsc  24
  6. */
  7. public class CopyDir {
  8. private File sDir, dDir, newDir;
  9. public CopyDir(String s, String d) {
  10. this(new File(s), new File(d));
  11. }
  12. CopyDir(File sDir, File dDir)// c:\\Test d:\\abc
  13. {
  14. this.sDir = sDir;
  15. this.dDir = dDir;
  16. }
  17. public void copyDir() throws IOException {
  18. // 是创建目的目录。也就是创建要拷贝的源文件夹。Test
  19. // 获取源文件夹名称。
  20. String name = sDir.getName();
  21. // 通过该名称在目的目录创建该文件夹,为了存放源文件夹中的文件或者文件夹。
  22. // 将目的目录和源文件夹名称,封装成File对象。
  23. newDir = dDir;
  24. // new File(dDir,name);
  25. // 调用该对象的mkdir方法。在目的目录创建该文件夹。d:\\abc\\Test
  26. newDir.mkdir();//
  27. // 遍历源文件夹。
  28. listAll(sDir);
  29. }
  30. /*
  31. * 将遍历目录封装成方法。 在遍历过程中,遇到文件创建文件。 遇到目录创建目录。
  32. */
  33. private void listAll(File dir) throws IOException {
  34. File[] files = dir.listFiles();
  35. for (int x = 0; x < files.length; x++) {
  36. if (files[x].isDirectory()) {
  37. createDir(files[x]);// 调用创建目录的方法。
  38. listAll(files[x]);// 在继续进行递归。进入子级目录。
  39. } else {
  40. createFile(files[x]);// 调用创建文件的方法。
  41. }
  42. }
  43. }
  44. /*
  45. * copy目录。通过源目录在目的目录创建新目录。
  46. */
  47. private void createDir(File dir) {
  48. File d = replaceFile(dir);
  49. d.mkdir();
  50. }
  51. /*
  52. * copy文件。
  53. */
  54. private void createFile(File file) throws IOException {
  55. File newFile = replaceFile(file);
  56. // copy文件是一个数据数据传输的过程。需要通过流来完成。
  57. FileInputStream fis = new FileInputStream(file);
  58. FileOutputStream fos = new FileOutputStream(newFile);
  59. byte[] buf = new byte[1024 * 2];
  60. int num = 0;
  61. while ((num = fis.read(buf)) != -1) {
  62. fos.write(buf, 0, num);
  63. }
  64. fos.close();
  65. fis.close();
  66. }
  67. /*
  68. * 替换路径。
  69. */
  70. private File replaceFile(File f) {
  71. // 原理是:将源目录的父目录(C:\\Tset),替换成目的父目录。(d:\\abc\\Test)
  72. String path = f.getAbsolutePath();// 获取源文件或者文件夹的决定路径。
  73. // 将源文件或者文件夹的绝对路径替换成目的路径。
  74. String newPath = path.replace(sDir.getAbsolutePath(), newDir
  75. .getAbsolutePath());
  76. // 将新的目的路径封装成File对象
  77. File newFile = new File(newPath);
  78. return newFile;
  79. }
  80. }
时间: 2024-10-14 20:08:29

目录操作工具类 CopyDir.java的相关文章

拼音操作工具类 - PinyinUtil.java

拼音操作工具类,提供字符串转换成拼音数组.汉字转换成拼音.取汉字的首字母等方法. 源码如下:(点击下载 -PinyinUtil.java.pinyin4j-2.5.0.jar ) 1 import net.sourceforge.pinyin4j.PinyinHelper; 2 import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; 3 import net.sourceforge.pinyin4j.format.HanyuPiny

Java IO(文件操作工具类)

FileOperate实现的功能: 1. 返回文件夹中所有文件列表 2. 读取文本文件内容 3. 新建目录 4. 新建多级目录 5. 新建文件 6. 有编码方式的创建文件 7. 删除文件 8. 删除指定文件夹下所有文件 9. 复制单个文件 10. 复制整个文件夹的内容 11. 移动文件 12. 移动目录 13. 建立一个可以追加的bufferedwriter 14. 得到一个bufferedreader Java代码    package utils; import java.io.Buffer

java实现简单文件操作工具类

本篇带来关于文件操作的简单工具类,包括文件夹创建,文件夹删除,文件创建,文件重命名,文件复制,文件删除.如果需要文件夹复制,其实就是创建文件夹和复制文件的操作.下面直接上代码 package com.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.Fil

文件操作工具类: 文件/目录的创建、删除、移动、复制、zip压缩与解压.

FileOperationUtils.java package com.xnl.utils; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.Fi

JAVA FileUtils(文件读写以及操作工具类)

转别人的合并的链接 //https://www.cnblogs.com/chenhuan001/p/6575053.html //https://blog.csdn.net/lovoo/article/details/77899627 第一个链接找不到了作者看见了说一下我给你上链接(但是你的名字信息没改哈!!) package com; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import

FileUtils.java 本地 文件操作工具类

package Http; import java.io.File;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException; /** * * 本地文件操作工具类 *保存文本 *保存图片 * Created by lxj-pc on 2017/6/27. */public class FileUtils { public static void saveText(String cont

JAVA之File类-将指定目录下的所有java文件的绝对路径存储到文本文件中

/* * 将指定目录下的所有java文件的绝对路径存储到文本文件中 * 建立一个java列表. * 思路: * 1.对指定目录进行递归 * 2.获取递归过程所有的java文件的路径 * 3.将这些路径存储在集合中 * 4.将集合中的内容写到文本文件 * 注:3,4步骤也可以合并成一个步骤 */ package ioTest.io3; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; imp

java数组操作工具类

package com.zuidaima.util.common; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; /** * 数组操作辅助类,支持int,char,boject,String类型 *@author www.zuidaima.com */ public class ArrayHelp

java下的多线程操作工具类(原创)

因为毕业设计上需要将控制台的任务实时输出到界面上, 而且那是个Hadoop的mapreduce任务,一跑半个小时的节奏,所以需要用到多线程并随时读取返回的数据, 百度了没找到合适的方法,于是被逼无奈编写了这个十分简单的多线程操作工具类. 大概的功能就是可以执行一个特定的线程(线程必须调用本类的方法才能实现实时输出信息的功能),然后随时调用readResult方法就可以获取到结果集. 在毕业设计的应用上,就是创建一个工具类,然后让它自己去跑,根据taskId保存到session中,用ajax循环读