源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java制作复制文件工具代码分享

  • 时间:2022-09-07 04:37 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java制作复制文件工具代码分享
[u]复制代码[/u] 代码如下:
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+"\r\n");  } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部