我需要将文件从一个目录复制到另一个目录,但是如果目标目录中已存在文件名 - 我需要使其唯一,所有文件都需要复制而不会覆盖。
我有以下代码:
String filenameBody = fi.Name.Substring(0, fi.Name.Length - fi.Extension.Length);
String fileDup = String.Format("{0}*{1}", filenameBody, fi.Extension);
FileInfo[] fiNotFound = diNotFound.GetFiles(fileDup);
if (fiNotFound.Length > 0)
newFilename = Path.Combine(diNotFound.ToString(),
String.Format("{0}_{1}{2}", filenameBody, fiNotFound.Length + 1,fi.Extension));
else
newFilename = Path.Combine(diNotFound.ToString(), fi.Name);
fi.MoveTo(newFilename);
Console.WriteLine(" Not Found");
当文件名包含括号时出现问题,例如(1).pdf当我给它模式(1)*。pdf时,GetFiles只返回一个文件,但我碰巧知道至少有两个 - 所以当调用MoveTo时它失败并且文件已经存在 - 所以如何当文件名是这种模式时,我可以使用GetFiles吗?