c#选择目录并根据路径找到指定文件将文件备份到选择的目录下并重命名为“源文件名-当前日期”
时间: 2024-12-19 10:23:24 浏览: 7
在C#中,你可以使用`System.IO`命名空间下的`Directory`、`Path`和`DateTime`类来完成这个任务。首先让用户选择源文件所在的目录和想要保存备份的新目录,然后遍历该目录寻找指定的文件并创建备份。这里有一个基本的示例:
```csharp
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
string sourceDir = GetDirectorySelection("请选择源文件所在目录:"); // 获取用户输入的源目录
string sourceFileName = "文件1"; // 指定源文件名称
string backupDir = GetDirectorySelection("请选择备份目录:"); // 获取用户输入的备份目录
DateTime currentDate = DateTime.Now; // 获取当前日期
string backupFileName = $"{sourceFileName}-{currentDate.ToString("yyyy-MM-dd_HH-mm-ss")}.bak"; // 创建备份文件名
string fullSourceFilePath = Path.Combine(sourceDir, sourceFileName); // 全部文件路径
if (File.Exists(fullSourceFilePath)) // 检查文件是否存在
{
string backupFullFilePath = Path.Combine(backupDir, backupFileName); // 生成备份文件完整路径
try
{
File.Copy(fullSourceFilePath, backupFullFilePath, true); // 复制文件并覆盖同名文件
Console.WriteLine($"备份文件已创建,原文件名:{sourceFileName}, 新名字:{backupFileName}");
}
catch (Exception ex)
{
Console.WriteLine($"备份失败,原因:{ex.Message}");
}
}
else
{
Console.WriteLine($"源文件 {sourceFileName} 未找到");
}
Console.ReadKey();
}
static string GetDirectorySelection(string prompt)
{
// 弹窗让用户选择文件夹
var dialog = new VistaFolderBrowserDialog();
if (dialog.ShowDialog() == DialogResult.OK)
{
return dialog.SelectedPath;
}
else
{
return null; // 用户取消了选择
}
}
}
```
在这个示例中,`GetDirectorySelection`函数用于弹出文件浏览器对话框让用户选择文件夹。如果用户选择了文件夹并且找到了源文件,则会创建备份并重命名。
阅读全文