в среде Windows и в нескольких приложениях, когда мы создаем новый файл с тем же именем существующего файла, пользователю не предлагается сообщение о том, что выходной файл уже существует, но он создает новый файл с ( 1) в конце имени файла ...
name.doc
будет
name(1).doc
Я пытаюсь создать такое же поведение в C #, и мой вопрос ... могу ли я уменьшить весь этот код?
FileInfo finfo = new FileInfo(fullOutputPath);
if (finfo.Exists)
{
int iFile = 0;
bool exitCreatingFile = false;
while (!exitCreatingFile)
{
iFile++;
if (fullOutputPath.Contains("(" + (iFile - 1) + ")."))
fullOutputPath = fullOutputPath.Replace(
"(" + (iFile - 1) + ").",
"(" + iFile + ")."); // (1) --> (2)
else
fullOutputPath = fullOutputPath.Replace(
Path.GetFileNameWithoutExtension(finfo.Name),
Path.GetFileNameWithoutExtension(finfo.Name) + "(" + iFile + ")"); // name.doc --> name(1).doc
finfo = new FileInfo(fullOutputPath);
if (!finfo.Exists)
exitCreatingFile = true;
}
}