معلومات المنتج:
الحزمة com.robin;
استيراد java.io.File؛
استيراد java.io.FileInputStream؛
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
نسخة ملف الطبقة العامة {
// سلسلة خاصة ثابتة rootSourcePath = "D:/temp/test1/";
سلسلة rootSourcePath ثابتة خاصة؛
سلسلة ثابتة خاصة rootTargetPath؛
سجل ملف سلسلة ثابت خاص؛
رسالة سلسلة ثابتة خاصة؛
public static void main(String args[]) {
// امتحان()؛
LoadConfig();
writeLogLn("ابدأ--------------------------------------");
CopyDirectory(rootSourcePath, rootTargetPath);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
تاريخ sourceFileDate = تاريخ جديد ()؛
String sourceFileDateStr = sdf.format(sourceFileDate);
writeLogLn("وقت الانتهاء:" + sourceFileDateStr + "---------------------------------------" );
writeLogLn("");
}
ملف نسخ ثابت خاص (String sourceFileStr، String targetFileStr) {
File sourceFile = new File(sourceFileStr);
File targetFile = new File(targetFileStr);
// الحصول على وقت تعديل الملف المصدر
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
long sourceFileModifiedTime = sourceFile.lastModified();
تاريخ sourceFileDate = تاريخ جديد(sourceFileModifiedTime);
String sourceFileDateStr = sdf.format(sourceFileDate);
// في حالة وجود الملف الهدف، قارن وقت التعديل
إذا (targetFile.exists()) {
long targetFileModifiedTime = targetFile.lastModified();
Date targetFileDate = new Date(targetFileModifiedTime);
String targetFileDateStr = sdf.format(targetFileDate);
إذا (targetFileModifiedTime >= sourceFileModifiedTime) {
messageStr = "تجاهل! SourceFileModifyTime:" + sourceFileDateStr
+ "TargetFileModifyTime:" + targetFileDateStr;
} آخر {
// nioTransferCopy(sourceFile, targetFile);
systemCopy(sourceFileStr, targetFileStr);
messageStr = "التغطية! SourceFileModifyTime: " + sourceFileDateStr
+ "TargetFileModifyTime:" + targetFileDateStr;
}
} آخر {
// nioTransferCopy(sourceFile, targetFile);
systemCopy(sourceFileStr, targetFileStr);
messageStr = "إنشاء! SourceFileModifyTime: " + sourceFileDateStr;
}
messageStr += " | SouceFile: " + sourceFileStr + " | الملف الهدف: "
+ targetFileStr;
Outln(messageStr);
writeLogLn(messageStr);
}
CopyDirectory باطلة ثابتة خاصة (سلسلة sourceDirectoryPath،
سلسلة الهدفدليل المسار) {
// أنشئ الدليل إذا لم يكن موجودًا
File targetDirectory = new File(targetDirectoryPath);
إذا (!targetDirectory.exists()) {
targetDirectory.mkdir();
messageStr = "إنشاء الدليل:" + targetDirectoryPath;
Outln(messageStr);
writeLogLn(messageStr);
}
// احصل على كافة الملفات أو الدلائل الموجودة في الدليل المصدر
File sourceDirectory = new File(sourceDirectoryPath);
File[] files = sourceDirectory.listFiles();
// اجتياز ملفات النسخ
لـ (int i = 0; i < files.length; i++) {
String filename = files[i].getName();
String targetFileStr = targetDirectoryPath + filename;
String sourceFileStr = files[i].toString();
إذا (الملفات [i].isFile ()) {
CopyFile(sourceFileStr, targetFileStr);
}
إذا (الملفات [i].isDirectory ()) {
targetFileStr = targetFileStr + "/";
CopyDirectory(sourceFileStr, targetFileStr);
}
}
}
// خاص ثابت باطل nioTransferCopy (مصدر الملف، هدف الملف)
// يلقي IOException {
// FileChannel in = null;
// FileChannel out = null;
// FileInputStream inStream = null;
// FileOutputStream outStream = null;
// يحاول {
// inStream = new FileInputStream(source);
// outStream = new FileOutputStream(target);
// in = inStream.getChannel();
// خارج = outStream.getChannel();
// in.transferTo(0, in.size(), out);
// } قبض على (IOException e) {
// e.printStackTrace();
// } أخيراً {
// inStream.Close();
// داخل. إغلاق ()؛
// outStream.Close();
// خارج. إغلاق ()؛
// }
// }
نظام نسخ الفراغ الثابت الخاص (String sourceFileStr، String targetFileStr) {
Runtime runtime = Runtime.getRuntime();
sourceFileStr = sourceFileStr.replace("/", "//");
targetFileStr = targetFileStr.replace("/", "//");
يحاول {
String CopyCmd = "cmd /c Copy /y /"" + sourceFileStr + "/" /""
+ targetFileStr + "/"";
runtime.exec(copyCmd);
} قبض (IOException ه) {
printStackTrace();
}
}
تحميل باطل ثابت خاص () {
يحاول {
FileInputStream inputFile = FileInputStream الجديد (
"config.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");
outln("SourcePath:" + rootSourcePath);
Outputln("TargetPath:" + rootTargetPath);
outln("logFilePath:" + logFilePath);
writeLogLn("SourcePath: " + rootSourcePath);
writeLogLn("TargetPath: " + rootTargetPath);
} قبض (IOException e1) {
e1.printStackTrace();
}
}
إخراج باطلة ثابتة خاصة (رسالة سلسلة) {
System.out.println(message);
}
إلحاق الفراغ العام الثابت (محتوى السلسلة) {
يحاول {
FileWriterwriter = new FileWriter(logFilePath, true);
Writer.write(content);
الكاتب. قريب ()؛
} قبض (IOException ه) {
printStackTrace();
}
}
writeLogLn باطل ثابت خاص (رسالة سلسلة) {
appendWrite(message+"/r/n");
}
}