java复制文件夹中的所有文件和文件夹到另一个文件夹中
程序员文章站
2024-03-09 10:08:47
...
package com.gblfy.ly.controller;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileUtils {
/**
* 复制整个文件夹内容
* @param oldPath String 原文件路径 如:c:/fqf
* @param newPath String 复制后路径 如:f:/fqf/ff
* @return boolean
*/
public static void copyFolder(String oldPath, String newPath) {
try {
(new File(newPath)).mkdirs(); //如果文件夹不存在 则建立新文件夹
File a=new File(oldPath);
String[] file=a.list();
File temp=null;
for (int i = 0; i < file.length; i++) {
if(oldPath.endsWith(File.separator)){
temp=new File(oldPath+file[i]);
}
else{
temp=new File(oldPath+ File.separator+file[i]);
}
if(temp.isFile()){
FileInputStream input = new FileInputStream(temp);
FileOutputStream output = new FileOutputStream(newPath + "/" +
(temp.getName()).toString());
byte[] b = new byte[1024 * 5];
int len;
while ( (len = input.read(b)) != -1) {
output.write(b, 0, len);
}
output.flush();
output.close();
input.close();
}
if(temp.isDirectory()){//如果是子文件夹
copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]);
}
}
}
catch (Exception e) {
System.out.println("复制整个文件夹内容操作出错");
e.printStackTrace();
}
}
public static void copyDir(String oldPath, String newPath) throws IOException {
File file = new File(oldPath); //文件名称列表
String[] filePath = file.list();
if (!(new File(newPath)).exists()) {
(new File(newPath)).mkdir();
}
for (int i = 0; i < filePath.length; i++) {
if ((new File(oldPath + file.separator + filePath[i])).isDirectory()) {
copyDir(oldPath + file.separator + filePath[i], newPath + file.separator + filePath[i]);
}
if (new File(oldPath + file.separator + filePath[i]).isFile()) {
copyFile(oldPath + file.separator + filePath[i], newPath + file.separator + filePath[i]);
}
}
}
public static void copyFile(String oldPath, String newPath) throws IOException {
File oldFile = new File(oldPath);
File file = new File(newPath);
FileInputStream in = new FileInputStream(oldFile);
FileOutputStream out = new FileOutputStream(file);;
byte[] buffer=new byte[2097152];
while((in.read(buffer)) != -1){
out.write(buffer);
}
}
public static void main(String[] args) throws IOException {
String oldPath="D:\\222\\data\\22";
String newPath="D:\\222\\data\\55";
long forStrTime = 0L;
long forEndTime = 0L;
forStrTime = System.currentTimeMillis();
System.out.println("开始进行图片转换:" + forStrTime + "毫秒");
// copyFolder(oldPath, newPath) ;//1419毫秒
copyDir(oldPath, newPath) ;//1099 毫秒
forEndTime = System.currentTimeMillis();
System.out.println("图片转换结束时间:" + forEndTime + "毫秒");
long endToStart = (long) (forEndTime - forStrTime);
System.out.println("图片转换消耗的时间:" + endToStart + "毫秒");
}
}
上一篇: 详解Java HashMap实现原理
下一篇: [转] LVM分区在线扩容
推荐阅读
-
java复制文件夹中的所有文件和文件夹到另一个文件夹中
-
java复制文件夹中的所有文件和文件夹到另一个文件夹中
-
python/yolo 筛选特定标签的图片复制到另一文件夹中
-
JAVA遍历一个文件夹中的所有文件的小例子
-
JAVA遍历一个文件夹中的所有文件的小例子
-
删除Mac废纸篓中的单一文件和文件夹的方法图文介绍
-
python/yolo 筛选特定标签的图片复制到另一文件夹中
-
文件夹下(包含子文件夹和文件),取文件夹和子文件夹下所有后缀为JPG的文件的,路径和文件名 ,把路径和文件名放在数组中
-
java:把一个文件夹中的所有文件复制到指定文件夹下
-
删除Mac废纸篓中的单一文件和文件夹的方法图文介绍