Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 61

Копирование, сортировка файлов

11.11.2015, 12:13. Показов 1728. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! У меня в папке много различных файлов необходимо, переместить или скопировать их по различным созданным папкам(сортировка не по расширениям)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.11.2015, 12:13
Ответы с готовыми решениями:

Копирование файлов с переменного диска - автоопределение + сортировка формата
Копирую с флешки постоянно обновления. Путь к флешке (ДИСК) постоянно разный (D, E, F, G) В общем есть часть скрипта ...

Копирование: Ввод имени папки и копирование из нее файлов
Доброго времени суток! Реально ли реализовать подобное с помощью bat ? Знаю, что можно создать папку с именем, которое можно задать. ...

Копирование файлов из разных каталогов в каталоги с именами, соответствующими номерам в именах файлов
Добрый день! Помогите решить проблему. Есть семь папок (cam_1, cam_2, cam_3 и.т.д) с фотографиями (cam_1_00052.JPG, cam_1_00053.JPG,...

9
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
11.11.2015, 12:20
VasNasSev, Оооо друг брат, я уже это месяц пишу)))) давай рассказывай чего хочешь? у меня почти все готово, только красоту навожу
1
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 61
11.11.2015, 14:23  [ТС]
Пришли пожалуйста свою версию кода. Я реализовывал через CopyFile(
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
11.11.2015, 14:25
И чем плоха CopyFile()?
0
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
11.11.2015, 15:45
VasNasSev, тебе какаую чать кода?

Добавлено через 10 секунд
Его у меня много
0
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 61
11.11.2015, 23:21  [ТС]
Мне нужно само копирование. Не через rename случайно?
0
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
11.11.2015, 23:47
Цитата Сообщение от VasNasSev Посмотреть сообщение
Не через rename случайно?
нет)) У меня честно выпрошено у форумчан и слеплена из 2х кусков для красивости
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <copyfile.h>
#include <sys/stat.h>
 
using namespace std;
 
struct space_out : std::numpunct<char> {
    char do_thousands_sep()   const { return ' '; }
    std::string do_grouping() const { return "\3"; }
};
 
inline void draw_progress_bar( int percents )
{
    int half = percents / 2;
    std::cout<<"\r[";
    for ( int i = 0; i <    half; ++i ) putc( '|', stdout );
    for ( int i = 0; i < 50-half; ++i ) putc( ' ', stdout );
    std::cout<<"] %"<< percents;
    fflush( stdout );
}
 
inline int copy_callback(int what, int stage, copyfile_state_t state, const char *src, const char *dst, void *ctx)
{
    off_t bcount;
    struct stat *st = (struct stat *) ctx;
    copyfile_state_get(state, COPYFILE_STATE_COPIED, &bcount);
    system("clear");
    int res=bcount;                                                         // для выбора системы размерности
    int Progres=(size_t) ((bcount / (double) st->st_size) * 100.0);         // выполнено в %
    std::cout.imbue(std::locale(std::cout.getloc(), new space_out));        // переключение вывода с 123456 на 123 456
    std::cout <<"" <<src << ": " << st->st_size << " / "<< res << " Bt copied. "<< endl;
    draw_progress_bar(Progres);
    std::cout<<std::endl;
    return COPYFILE_CONTINUE;
}
 
void cf(const char *from,const char *to)
{
    struct stat st;
    stat(from, &st);
    copyfile_state_t state = copyfile_state_alloc();
    copyfile_state_set(state, COPYFILE_STATE_STATUS_CB, (const void *) &copy_callback);
    copyfile_state_set(state, COPYFILE_STATE_STATUS_CTX, (const void *) &st);
    if (copyfile(from, to, state, COPYFILE_ALL) != 0) {
        cerr << "copy failed" << endl;
    }
    copyfile_state_free(state);
}
 
 
 
 
 
int main()
{
    cf("win7.iso","test/win7.iso");
    return 0;
}
0
166 / 69 / 17
Регистрация: 22.03.2011
Сообщений: 196
12.11.2015, 02:12
Цитата Сообщение от Mesteriis Посмотреть сообщение
std::cout.imbue(std::locale(std::cout.ge tloc(), new space_out));
mother of god....
не нужно делать это каждый раз в коллбеке.
0
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
12.11.2015, 12:02
pproger, Это пока черновой вариант, сегодня завтра все по классам разнесу
0
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
12.11.2015, 14:04
Лучший ответ Сообщение было отмечено VasNasSev как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <string>
 
#define BOOST_NO_AUTO_PTR
#define BOOST_NO_CXX11_SCOPED_ENUMS
#include <boost/filesystem.hpp>
#include <boost/range/algorithm.hpp>
 
namespace fs = boost::filesystem;
namespace br = boost::range;
 
int main()
{
   const std::string source_dir = "D:\\Temp";
   std::vector<fs::path> files{fs::recursive_directory_iterator(source_dir), {}};
   files.erase(br::remove_if(files, [](const fs::path &p){return !fs::is_regular_file(p);}), files.end());
 
   std::string copy_to1 = "\\copy_group1", copy_to2 = "\\copy_group2";
   fs::create_directory(source_dir + copy_to1);
   fs::create_directory(source_dir + copy_to2);
 
   auto first_group = [](const fs::path& p){return p.filename().string().substr(0, 2) == "ab";};
   auto second_group = [](const fs::path& p){return p.filename().string().substr(0, 3) == "dll";};
   br::for_each(files, [&](const fs::path& p)
   {
      if (first_group(p))
         fs::copy_file(p, source_dir + copy_to1 + "\\" + p.filename().string());
      if (second_group(p))
         fs::copy_file(p, source_dir + copy_to2 + "\\" + p.filename().string());
   });
   std::cout << "Done.";
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.11.2015, 14:04
Помогаю со студенческими работами здесь

Копирование файлов из одной папки в другую, но с пропуском одинаковых файлов в этих папках
Доброго времени суток. Прошу помощи в написании батника. Задача: Есть папка А с файлами 1,2,3 и папка Б с этими же файлами 1,2 и 3. ...

Копирование файлов с переименованием в случае совпадения имён перемещаемых и имеющихся в папке назначения файлов
Добрый день. Помогите создать bat файл. Смысл в чем есть папка загрузки на компьютере с нее файлы и папки содержащиеся в ней должны...

Копирование файлов с FTP-сервера на компьютеры клиентов без замены уже имеющихся файлов
Приветствую. Такая задача. имеется фтп сервер. на нем лежит 5 папок, в каждой паке каждый день добавляются файлы. Мне необходимо, чтобы эти...

Копирование отсутствующих и изменённых файлов по результатам сверки файлов одного каталога с файлами другого
Всем привет. такая вот задача у меня. я не селен в этом. но стараюсь. есть 2 каталога (1. NEW, 2. CLONE)с файлами в один из них время от...

Копирование файлов по списку в текстовом файле в папки с именами, соответствующими расширениям этих файлов
Добрый день, уважаемые форумчане. Прошу помощи с написанием bat-файла. Значит задача такая. Есть у нас помойка с множеством файлов и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru