Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/47: Рейтинг темы: голосов - 47, средняя оценка - 4.60
Кошковед
 Аватар для co6ak
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390

Копирование файлов

14.08.2011, 19:51. Показов 9824. Ответов 45
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ, дайте пожалуйста исходник копирования файлов по принципу "открыть файл1 -> считать в буфер содержимое -> открыть файл2 -> заменить содержимое -> сохранить файл2"


очень нужно. зашиваюсь
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.08.2011, 19:51
Ответы с готовыми решениями:

Копирование файлов С++
Нужно скопировать все файлы из папки С:/zello в папку С:/zello2 system("copy С:\\zello С:\\zello2"); какие библиотеки...

копирование файлов
Зраствуйте можете подсказать алгоритм копирования файлов любого типу(разширения)??

Копирование файлов C++
Прошу помочь найти в чем здесь ошибка. Условие: Дан текстовый файл на русском языке. Скопировать содержимое данного файла в новый...

45
 Аватар для talis
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
16.08.2011, 17:58
Студворк — интернет-сервис помощи студентам
co6ak, хорошо, если нельзя SFTP, почему бы не попробовать через SSH примонтировать удалённую директорию с копируемыми файлами через SSHFS, и через SSH же выполнять команды копирования файлов, полагаясь на функционал SSHFS?

Добавлено через 2 минуты
Или SCP? Тоже штука семейства SSH.
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
16.08.2011, 18:00
Есть мнение, что данный функционал проще выполнить скриптом
А графическая форма (если таковая есть) пусть просто запускает скрипт с параметрами.
0
Кошковед
 Аватар для co6ak
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
17.08.2011, 10:33  [ТС]
вся суть, что бы человек толком ни чего не шарящий в перепрошивки этого гамна (как я например ) поставил галочки на уровни прошивки и нажал кнопку.

а проблема была в кривой библиотеке libssh. нормально копирование проходит только побитово
0
1 / 1 / 0
Регистрация: 28.06.2012
Сообщений: 14
28.06.2012, 02:12
Здравствуйте! Столкнулся с похожей проблемой: нужно "склеить" содержимое нескольких разнотипных файлов в один так, чтобы потом распаковать их обратно. Уже несколько дней бьюсь над этой проблемой, постоянно натыкаюсь на определенные ошибки. Вот сейчас попробовал способ, описанный выше, а именно - скопировать полностью один из файлов в буфер, потом записать в нужный мне файл. Разные файлы в таком себе "пакете" разделяю тегами.

Вот собственно код:
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
59
60
61
62
63
64
            char th_name[128], th_path[256]={'\0'};
            long int cnt;
            system("cls");
            puts("--<Упаковать тему>--");
            puts("---<Набор файлов>---");
            CallHelp("MainMenu");
 
        // --------- Создаем файл темы ---------
            puts("Введите название темы оформления:");
            scanf("%s",th_name);
 
            if(strcmp(th_name,"#back")==0)                              // проверка на наличие управляющего кода ->
                return 1;                                               // возврата в главное меню.
 
            strcat(strcat(strcat(th_path,"Themes\\"),th_name),".thp");  // генератор пути к файлу
 
            dest_pointer=fopen(th_path,"wb");
            if(dest_pointer==NULL)
            {
                puts("\n\nОшибка открытия файла. Возврат к главному меню.");
                system("pause");
                return 1;
            }
 
        // ---------Работа с файлом explorer.exe---------
            printf("Введите путь к файлу explorer.exe:   ");
            scanf("%s",th_name);
            printf("Выполняется упаковка файла explorer.exe:   ");
            exp_pointer=fopen(th_name,"rb");                // открытие файла explorer.exe
            if(exp_pointer==NULL)                           // проверка на корректность открытия файла
            {
                puts("\n\nОшибка открытия файла. Возврат к главному меню.");
                fclose(dest_pointer);
                system("pause");
                return 1;
            }
            fprintf(dest_pointer,"-<[EXP]");                // внесение в пакет открывающего тега EXP
 
            //--------Копирование---------
            fseek(exp_pointer,0L,SEEK_END);                 // переходим в конец файла
            cnt=ftell(exp_pointer);                         // узнаем длинну файла
            char *buffer=(char*)malloc(cnt*sizeof(char));   // выделяем память для буфера
            fseek(exp_pointer,0,SEEK_SET);                  // переходим в начало файла
 
            if(cnt!=fread(buffer,cnt,1,exp_pointer))        // проверка корректности считываемых данных, сохранение файла в буфер
            {
                puts("\n\nОшибка выделения памяти для буфера. Возврат к главному меню.");
                fclose(dest_pointer);
                fclose(exp_pointer);
                free(buffer);
                system("pause");
                return 1;
            }
            fwrite(buffer,1,cnt,dest_pointer);              // дозапись файла в пакет
 
            fclose(exp_pointer);                            // закрываем файл
            free(buffer);                                   // очистка буфера
            printf("ГОТОВО\n");                               // сигнал
 
 
            fclose(dest_pointer);                           // завершаем пакетный файл темы
            puts("Файл успешно создано. Возврат к главному меню.");
            system("pause");
            return 2;
Проблема в том что всегда выдает ошибку, описанную в этом условии:
C++
1
if(cnt!=fread(buffer,cnt,1,exp_pointer))
В чем может заключаться проблема?
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.06.2012, 07:05
Цитата Сообщение от Karponter Посмотреть сообщение
if(cnt!=fread(buffer,cnt,1,exp_pointer))
В порядке параметров ошиблись. cnt и 1 поменяйте.

Добавлено через 18 минут
fread() возващает количество считанных блоков. Количество блоков - третий параметр.

Добавлено через 13 минут
Если бы проверки не было, то всё бы работало. Наверное, fread() без разницы: 100 блоков по 1 байту, или 1 блок в 100 байтов. Только возвратит при успешном считывании или 100, или 1.
0
1 / 1 / 0
Регистрация: 28.06.2012
Сообщений: 14
13.07.2012, 03:35
Спасибо большое, сработало.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.07.2012, 03:35

Копирование файлов
Приветствую. Пытался написать программу для копирования содержимого одного файла в другой: #include &lt;iostream&gt; #include...

копирование файлов
Всем приятного времени суток! Мне нужно просто скопировать файл, вроде ничего сложного) Сделал так: #include &lt;stdio.h&gt; #include...

Копирование текстовых файлов
Столкнулся с такой проблемой : при копировании из одного файла в другой мне нужно исключить(пропустить) слова, которые начинаются на букву,...

Побайтовое копирование файлов
Добрый день. Подскажите пожалуйста,как в данном примере можно было бы выполнить копирование файла в обратном порядке? ifstream...

Копирование, сортировка файлов
Добрый день! У меня в папке много различных файлов необходимо, переместить или скопировать их по различным созданным папкам(сортировка не...


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

Или воспользуйтесь поиском по форуму:
46
Ответ Создать тему
Новые блоги и статьи
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru