Files
AohDrllTools/BackupTest.cs
2025-12-07 20:25:27 +08:00

79 lines
3.0 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.IO;
using System.Windows;
namespace DrillTools
{
/// <summary>
/// 备份功能测试类
/// </summary>
public static class BackupTest
{
/// <summary>
/// 测试备份功能
/// </summary>
public static void TestBackupFunctionality()
{
Console.WriteLine("=== 备份功能测试 ===");
// 创建测试文件
string testFilePath = "test_file.drl";
string testContent = "M48\nT01C1.000\n%\nT01\nX1000Y1000\nM30";
try
{
// 1. 创建原始测试文件
File.WriteAllText(testFilePath, testContent);
Console.WriteLine("✓ 创建测试文件成功");
// 2. 第一次备份(应该直接创建.bak文件
string backupPath1 = testFilePath + ".bak";
if (File.Exists(backupPath1))
File.Delete(backupPath1);
File.Copy(testFilePath, backupPath1);
Console.WriteLine("✓ 第一次备份成功");
// 3. 模拟第二次备份(检测到.bak文件已存在
if (File.Exists(backupPath1))
{
Console.WriteLine("✓ 检测到备份文件已存在");
// 模拟用户选择创建时间戳备份
string timestamp = DateTime.Now.ToString("yyyyMMdd_HHmmss");
string timestampBackupPath = $"{testFilePath}.{timestamp}.bak";
File.Copy(testFilePath, timestampBackupPath);
Console.WriteLine($"✓ 创建时间戳备份成功: {Path.GetFileName(timestampBackupPath)}");
}
// 4. 验证备份文件内容
if (File.Exists(backupPath1) && File.ReadAllText(backupPath1) == testContent)
{
Console.WriteLine("✓ 备份文件内容验证成功");
}
// 5. 清理测试文件
File.Delete(testFilePath);
if (File.Exists(backupPath1))
File.Delete(backupPath1);
// 删除时间戳备份文件
var timestampFiles = Directory.GetFiles(".", "*.bak");
foreach (var file in timestampFiles)
{
if (file.Contains("test_file.") && file.Contains(".bak"))
{
File.Delete(file);
Console.WriteLine($"✓ 清理测试文件: {Path.GetFileName(file)}");
}
}
Console.WriteLine("=== 备份功能测试完成 ===");
}
catch (Exception ex)
{
Console.WriteLine($"✗ 测试失败: {ex.Message}");
}
}
}
}