Я бы сделал что-то вроде этого:
string localDirectory = @"C:\"; // no need to get the folder name as it will be the same than the source one
string sourceDirectory = @"\\10.10.97.121\pckasabatch\42Apps";
string directoryName = Path.GetDirectoryName(sourceDirectory); // getting only the name of the folder
string tempDirPath = Path.Combine(localDirectory, directoryName); // creating a temp variable which will be used to check if the folder exists
string dirPath = tempDirPath; // saving for the renaming
string tempDirName = directoryName;
int inc = 0;
// we create a loop to check the first non existing folder name
While(Directory.Exists(tempDirPath))
{
tempDirName = $"{directoryName}(old{i})";
tempDirPath = Path.Combine(localDirectory, directoryName);
i++;
}
if (inc != 0) // if the folder has to be renames
{
Directory.Move(dirPath, tempDirPath);
}
Directory.Move(sourceDirectory, dirPath);
Просто для вашей информации в вашем коде вы создаете логическое значение dizinverisi
, которое вы забываете использовать. Более того, не используйте if (localFile != null && localFile.Length >0)
, а используйте if (String.IsNullOrEmpty(localFile))
и, возможно, добавьте логическое значение в условие после этого, если вы ожидаете, что путь будет от неопределенного ввода. Это условие можно поставить в начале моего кода с возвратом, если файл не существует. Возможно, вам также следует проверить папку назначения, чтобы убедиться, что она существует