答案 0 :(得分:0)
您可能正在尝试创建已存在的文件,因为您使用秒来追加。根据您调用此频率的频率,您可能尝试创建两个具有相同名称的文件。我会尝试使用完整的DateTime引用或任意递增的数字来追加。
此外,在连接文件路径时始终建议使用Path.Combine()
:尝试示例:
string NewDirectory = (@"D:\Files\edited\");
Directory.CreateDirectory(NewDirectory);
string seconds = DateTime.Now.ToString("-ss");
string NewName = "Example Txt" + "-2.2-.txt";
string FullPath = Path.Combine(NewDirectory, NewName);
if (File.Exists(FullPath))
{
NewName = NewName + _SomeClassInteger + ".txt"
File.Move(file, Path.Combine(NewDirectory, NewName));
Console.WriteLine(NewName + seconds);
}
else
File.Move(file, FullPath);
Console.WriteLine(NewName);
答案 1 :(得分:0)
您可以尝试使用随机名称创建目录。为此,请使用Path.GetRandomFileName()。然后使用一段时间检查文件是否存在。此外,我意识到你也移动文件,如果它不存在。是对的吗?也许那是你的问题
这是生成文件名的代码:
string NewName = Path.GetRandomFileName() + ".txt";
string FullName = Path.Combine(NewDirectory, NewName);
最好还使用Path.Combine()方法创建路径。
答案 2 :(得分:0)
不幸的是我仍然有例外。
我决定添加" DateTime.Now.ToString(" - ss")"到名称步骤以避免获得异常,或至少降低获取文件的可能性
string NewDirectory = (@"D:\Files\edited\");
Directory.CreateDirectory(NewDirectory);
string seconds = DateTime.Now.ToString("- ss");
string NewName = "Example Txt" + "-2.2-" + seconds;
File.Move(file, NewDirectory + NewName + ".txt");
Console.WriteLine(NewName);