【发布时间】:2017-04-25 13:39:17
【问题描述】:
我面临一个应用程序执行某些过程然后将文件移动到新目录的挑战。它工作正常,但如果找到同名文件,我会得到一个未处理的异常。
如果文件已经存在,我不想覆盖它,也不想给用户一个消息。如果文件已经存在,我想将文件移动到 NewDirectory 并用不同的名称重命名文件。
我尝试的解决方案永远不会捕获未处理的异常。
string NewDirectory = (@"D:\Files\edited\");
Directory.CreateDirectory(NewDirectory);
string seconds = DateTime.Now.ToString("-ss");
string NewName = "Example Txt" + "-2.2-";
string FullPath = (NewDirectory + NewName + ".txt");
if (File.Exists(FullPath))
{
File.Move(file, NewDirectory + NewName + seconds + ".txt");
Console.WriteLine(NewName + seconds);
}
else
File.Move(file, NewDirectory + NewName + ".txt");
Console.WriteLine(NewName);
【问题讨论】:
-
如果文件已经存在,你想采取什么行动?覆盖它?
-
不,我已经在我的问题中解释过,我想附加新文件名以避免异常。
-
你对错误处理了解多少?
-
你知道
try/catch吗? -
秒可能是一个糟糕的选择。它们只有 60 个,每分钟重复一次。老实说,我会使用一个简单的 int,并在文件存在时在 while 循环中递增它。一旦文件不存在,将其添加到文件名并移动它(不要忘记 ToString)。
标签: c#