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

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

11.11.2015, 12:13. Показов 1686. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru