Нужен C# код для перемещения файлов (Есть решение!)

impul5e

Client
Регистрация
15.08.2017
Сообщения
202
Благодарностей
40
Баллы
28
Приветствую форумчане! Помогите, нужен c# код, который возьмет файлы из определенной директории и переместит их в подпапку в той же директории. Благодарю заранее.
 

impul5e

Client
Регистрация
15.08.2017
Сообщения
202
Благодарностей
40
Баллы
28
Полистал форум, нашел подобный код и причесал под свои нужды. Если кому нужно, вот он:

C#:
string directory = project.Variables["folder"].Value;//задаем исходную папку
string directoryTmp = directory + @"\folder\";// задаём название подпапки folder

Directory.CreateDirectory(directoryTmp);//создаём подпапку

DirectoryInfo source = new DirectoryInfo(directory);
DirectoryInfo destin = new DirectoryInfo(directoryTmp);
foreach (var item in source.GetFiles())
{
    File.Move(directory +@"\" +item.Name, directoryTmp +@"\" +item.Name); // перемещаем файлы из папки в подпапку folder
}
 
  • Спасибо
Реакции: Sergodjan

impul5e

Client
Регистрация
15.08.2017
Сообщения
202
Благодарностей
40
Баллы
28
Возникла ошибка, если файл с таким же названием уже существует в подпапке. Помогите дописать код, чтобы при наличии такого же файла, к названию дописывалась, допустим, дата и время.
 

nexx1

Client
Регистрация
16.08.2016
Сообщения
277
Благодарностей
97
Баллы
28
string directory = project.Variables["folder"].Value;
string directoryTmp = directory + @"\folder\";

Directory.CreateDirectory(directoryTmp);

DirectoryInfo source = new DirectoryInfo(directory);
DirectoryInfo destin = new DirectoryInfo(directoryTmp);

foreach (var item in source.GetFiles())
{
string destinationPath = Path.Combine(directoryTmp, item.Name);
if (File.Exists(destinationPath))
{
string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(item.Name);
string randomString = Path.GetRandomFileName().Replace(".", "").Substring(0, 5);
string newFileName = $"{fileNameWithoutExtension}_{randomString}{Path.GetExtension(item.Name)}";
destinationPath = Path.Combine(directoryTmp, newFileName);
}

File.Move(item.FullName, destinationPath);
}
 
  • Спасибо
Реакции: impul5e

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)