Перемещение кол-ва файлов в папку

edger

Client
Регистрация
08.03.2012
Сообщения
42
Благодарностей
4
Баллы
8
Всем привет! Помогите пожалуйста решить головоломку) Есть папка, в ней 1200 файлов. Необходимо взять 30 файлов, переместить их в папку 1, далее взять ещё 30 файлов, и переместить их в папку 2, и так по кругу, пока не кончатся все файлы. Файлов может быть на порядки больше, как исходных, так и то кол-во, которое перемещаем. Не могу додуматься до реализации. Заранее спасибо!
 
Последнее редактирование:

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
В той же папке создаст новые папки
C#:
string Dir = project.Variables["Dir"].Value;//путь к папке с файлами
int range = 30;//порция
int dirName = 1;//стартовое название папки для порции файлов
var fileList = Directory.GetFiles(Dir).ToList();

while(true)
{
    string Dir2 = Dir+dirName.ToString();
    Directory.CreateDirectory(Dir2);
    for(int i = 1; i <= range; i++)
    {
        if(fileList.Count > 0)
        {
            string filePath = fileList[0];
            string fileName = Path.GetFileName(filePath);
            fileList.RemoveAt(0);
            File.Copy(Path.Combine(Dir, fileName), Path.Combine(Dir2, fileName), true);
    //        File.Delete(filePath);
        }
        else break;
    }
    dirName++;
    if(fileList.Count == 0) break;
}
 
  • Спасибо
Реакции: edger

edger

Client
Регистрация
08.03.2012
Сообщения
42
Благодарностей
4
Баллы
8
В той же папке создаст новые папки
C#:
string Dir = project.Variables["Dir"].Value;//путь к папке с файлами
int range = 30;//порция
int dirName = 1;//стартовое название папки для порции файлов
var fileList = Directory.GetFiles(Dir).ToList();

while(true)
{
    string Dir2 = Dir+dirName.ToString();
    Directory.CreateDirectory(Dir2);
    for(int i = 1; i <= range; i++)
    {
        if(fileList.Count > 0)
        {
            string filePath = fileList[0];
            string fileName = Path.GetFileName(filePath);
            fileList.RemoveAt(0);
            File.Copy(Path.Combine(Dir, fileName), Path.Combine(Dir2, fileName), true);
    //        File.Delete(filePath);
        }
        else break;
    }
    dirName++;
    if(fileList.Count == 0) break;
}
Благодарю за ответ! :-) А каким образом задавать путь к папке с файлами?
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Благодарю за ответ! :-) А каким образом задавать путь к папке с файлами?
Можно в самом коде вместо
C#:
string Dir = project.Variables["Dir"].Value;
это
C#:
string Dir = @"D:\папка\папка с файлами\";
Или создать переменную в шаблоне с названием Dir и туда вставить путь к папке с файлами
 
  • Спасибо
Реакции: edger

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