手机
当前位置:查字典教程网 >编程开发 >Java >java制作复制文件工具代码分享
java制作复制文件工具代码分享
摘要:复制代码代码如下:packagecom.robin;importjava.io.File;importjava.io.FileInputSt...

复制代码 代码如下:

package com.robin;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileWriter;

import java.io.IOException;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Properties;

public class FileCopy {

// private static String rootSourcePath = "D:/temp/test1/";

private static String rootSourcePath;

private static String rootTargetPath;

private static String logFilePath;

private static String messageStr;

public static void main(String args[]) {

// test();

loadConfig();

writeLogLn("Start--------------------------------------");

copyDirectory(rootSourcePath, rootTargetPath);

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");

Date sourceFileDate = new Date();

String sourceFileDateStr = sdf.format(sourceFileDate);

writeLogLn("End Time:" + sourceFileDateStr + " --------------------------------------");

writeLogLn("");

}

private static void copyFile(String sourceFileStr, String targetFileStr) {

File sourceFile = new File(sourceFileStr);

File targetFile = new File(targetFileStr);

// get source file modify time

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");

long sourceFileModifiedTime = sourceFile.lastModified();

Date sourceFileDate = new Date(sourceFileModifiedTime);

String sourceFileDateStr = sdf.format(sourceFileDate);

// if target file exist, compare modify time

if (targetFile.exists()) {

long targetFileModifiedTime = targetFile.lastModified();

Date targetFileDate = new Date(targetFileModifiedTime);

String targetFileDateStr = sdf.format(targetFileDate);

if (targetFileModifiedTime >= sourceFileModifiedTime) {

messageStr = "Ignore! SourceFileModifyTime:" + sourceFileDateStr

+ " TargetFileModifyTime:" + targetFileDateStr;

} else {

// nioTransferCopy(sourceFile, targetFile);

systemCopy(sourceFileStr, targetFileStr);

messageStr = "Covere! SourceFileModifyTime: " + sourceFileDateStr

+ "TargetFileModifyTime: " + targetFileDateStr;

}

} else {

// nioTransferCopy(sourceFile, targetFile);

systemCopy(sourceFileStr, targetFileStr);

messageStr = "Create! SourceFileModifyTime: " + sourceFileDateStr;

}

messageStr += " | SouceFile: " + sourceFileStr + " | Target File: "

+ targetFileStr;

outputln(messageStr);

writeLogLn(messageStr);

}

private static void copyDirectory(String sourceDirectoryPath,

String targetDirectoryPath) {

// create directory if it was not exist

File targetDirectory = new File(targetDirectoryPath);

if (!targetDirectory.exists()) {

targetDirectory.mkdir();

messageStr = "Make Directory: " + targetDirectoryPath;

outputln(messageStr);

writeLogLn(messageStr);

}

// get all files or directories on source directory

File sourceDirectory = new File(sourceDirectoryPath);

File[] files = sourceDirectory.listFiles();

// traverse copy files

for (int i = 0; i < files.length; i++) {

String filename = files[i].getName();

String targetFileStr = targetDirectoryPath + filename;

String sourceFileStr = files[i].toString();

if (files[i].isFile()) {

copyFile(sourceFileStr, targetFileStr);

}

if (files[i].isDirectory()) {

targetFileStr = targetFileStr + "/";

copyDirectory(sourceFileStr, targetFileStr);

}

}

}

// private static void nioTransferCopy(File source, File target)

// throws IOException {

// FileChannel in = null;

// FileChannel out = null;

// FileInputStream inStream = null;

// FileOutputStream outStream = null;

// try {

// inStream = new FileInputStream(source);

// outStream = new FileOutputStream(target);

// in = inStream.getChannel();

// out = outStream.getChannel();

// in.transferTo(0, in.size(), out);

// } catch (IOException e) {

// e.printStackTrace();

// } finally {

// inStream.close();

// in.close();

// outStream.close();

// out.close();

// }

// }

private static void systemCopy(String sourceFileStr, String targetFileStr) {

Runtime runtime = Runtime.getRuntime();

sourceFileStr = sourceFileStr.replace("/", "");

targetFileStr = targetFileStr.replace("/", "");

try {

String copyCmd = "cmd /c copy /y "" + sourceFileStr + "" ""

+ targetFileStr + """;

runtime.exec(copyCmd);

} catch (IOException e) {

e.printStackTrace();

}

}

private static void loadConfig() {

try {

FileInputStream inputFile = new FileInputStream(

"config.properties");

Properties p = new Properties();

p.load(inputFile);

rootSourcePath = p.getProperty("rootSourcePath");

rootTargetPath = p.getProperty("rootTargetPath");

logFilePath = p.getProperty("logFilePath");

rootSourcePath = new String(rootSourcePath.getBytes("8859_1"), "GBK");

rootTargetPath = new String(rootTargetPath.getBytes("8859_1"), "GBK");

logFilePath = new String(logFilePath.getBytes("8859_1"), "GBK");

outputln("SourcePath: " + rootSourcePath);

outputln("TargetPath: " + rootTargetPath);

outputln("logFilePath: " + logFilePath);

writeLogLn("SourcePath: " + rootSourcePath);

writeLogLn("TargetPath: " + rootTargetPath);

} catch (IOException e1) {

e1.printStackTrace();

}

}

private static void outputln(String message) {

System.out.println(message);

}

public static void appendWrite(String content) {

try {

FileWriter writer = new FileWriter(logFilePath, true);

writer.write(content);

writer.close();

} catch (IOException e) {

e.printStackTrace();

}

}

private static void writeLogLn(String message) {

appendWrite(message+"rn");

}

}

【java制作复制文件工具代码分享】相关文章:

java删除文件和文件夹具体实现

Java创建文件夹及文件实例代码

java 获取当前函数名的实现代码

java裁剪图片并保存的示例分享

Java Clone(类的复制)实例代码

java 删除数组元素与删除重复数组元素的代码

java读取word-excel-ppt文件代码

Java生成PDF文件的实例代码

java开发_图片截取工具实现原理

深入java对象复制的分析

精品推荐
分类导航