C# Перемещение файлов из папки в другую папку

Meteorburn

Client
Регистрация
23.05.2016
Сообщения
1 448
Благодарностей
564
Баллы
113
Ребят, заманался искать решение этой задачи. После этой темы - http://zennolab.com/discussion/threads/c-obedinenie-tekstovyx-fajlov.32892/ решил реализовать операцию с временными файлами. C# не владею, но понимаю, что без кода в проекте будет куча экшенов, которые можно сделать в одном коде.

Пишу парсер для ВК.
Идея такова, что во время парсинга создаются множество .txt с данными и затем перед отрабатываением последнего потока все данные собираются в файл и перемещаются из папки project.Directory/tmp в папку с проектом

Спасибо Moadip, он мне помог реализовать сбор всех .txt в один
Но теперь у меня следующая задача перед завершением последнего потока выполнить перемещение всех файлов в папке project.Directory/tmp в project.Directory

На данный момент вот такое у меня решение:

C#:
string directory = project.Directory;
string directoryTmp = project.Directory + @"\tmp\";
        {
            DirectoryInfo source = new DirectoryInfo(directoryTmp);
            DirectoryInfo destin = new DirectoryInfo(directory);
            foreach (var item in source.GetFiles())
            {
                item.CopyTo(destin + item.Name, true);
            }

        }
Но переменные путей в DirectoryInfo не срабатывают. Снипет выполняется, а копирование не происходит. Только если в строках new DirectoryInfo(); Указать полный путь к файлам и папкам.

Что не так? Помогите)) Я уже битый час сижу, перебрал кучу вариантов, весь интернет перерыл. Даже Visual Studio для отладки установил, нифига не понял.
 

perioh

Client
Регистрация
14.09.2016
Сообщения
28
Благодарностей
6
Баллы
3
Код:
string directory = project.Directory;
string directoryTmp = project.Directory + @"\tmp\";

DirectoryInfo source = new DirectoryInfo(directoryTmp);
DirectoryInfo destin = new DirectoryInfo(directory);
foreach (var item in source.GetFiles())
{
    item.CopyTo(directory +@"\" +item.Name,true);
}
 

Master4eg

Client
Регистрация
06.04.2016
Сообщения
421
Благодарностей
122
Баллы
43
del
 
Последнее редактирование:

soprano

Client
Регистрация
25.08.2011
Сообщения
799
Благодарностей
843
Баллы
93
Код:
string directory = project.Directory;
string directoryTmp = project.Directory + @"\tmp\";

DirectoryInfo source = new DirectoryInfo(directoryTmp);
DirectoryInfo destin = new DirectoryInfo(directory);
foreach (var item in source.GetFiles())
{
    item.CopyTo(directory +@"\" +item.Name,true);
}
Не хочет работать для копирования картинок из папки в папку
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 767
Благодарностей
2 409
Баллы
113
Не хочет работать для копирования картинок из папки в папку
Вот, примерно такой демонстрационный пример производит копирование картинок с папки data в папку temp, и если уже в папке temp есть файлы с такими именами - производит их перезапись.

Копирование файлов jpg с папки data в папку temp:
string dir = project.Directory;
string diR_in = Path.Combine(dir, "data");
if(!Directory.Exists(diR_in)) Directory.CreateDirectory(diR_in);
string diR_out = Path.Combine(dir, "temp");
if(!Directory.Exists(diR_out)) Directory.CreateDirectory(diR_out);

List<string> files = Directory.GetFiles(diR_in, "*.jpg").ToList(); // Прочитаем все файлы jpg
project.SendInfoToLog(string.Format(@"Нашли {0} файлов", files.Count));

foreach (string path_file in files) {
    string new_path = Path.Combine(diR_out, Path.GetFileName(path_file));
    project.SendInfoToLog(string.Format(@"Копирую файл {0} в {1}", path_file, new_path));
    File.Copy(path_file, new_path, true);
}
70486
 

Вложения

  • Спасибо
Реакции: DevOps и soprano

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