Как скопировать и переименовать файлы в приложении формы c# windows? - PullRequest
1 голос
/ 06 мая 2020

Я хочу скопировать папку на сервере и все файлы в ней на диск c. Если на диске c есть такая же папка, я бы хотел изменить имя папки на диске c, чтобы скопировать папку на сервере на диск c.

            string localFile = @"C:\42Apps";
            string sourceFile = @"\\10.10.97.121\pckasabatch\42Apps";

            bool dizinverisi = Directory.Exists(localFile);
            if (localFile != null && localFile.Length >0)
            {
                int i = 0;

               Directory.Move(@"C:\42Apps", "42Apps(old" +i++ +")");
               //File.Move(sourceFile , localFile);  // second method
            }

            else { }

1 Ответ

0 голосов
/ 06 мая 2020

Я бы сделал что-то вроде этого:

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)) и, возможно, добавьте логическое значение в условие после этого, если вы ожидаете, что путь будет от неопределенного ввода. Это условие можно поставить в начале моего кода с возвратом, если файл не существует. Возможно, вам также следует проверить папку назначения, чтобы убедиться, что она существует

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...