Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Копирование файла .exe  (Прочитано 10741 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Денисrf
Постоялец

ru
Offline Offline
Пол: Мужской

« : 26-03-2010 17:19 » 

Доброго всем времени! Такая необходимость возникла: как скопировать .exe-шник из указанной директории в другую указанную? Или файл любого другого формата. Если кто знает поделитесь пожалуйста опытом. Заранее благодарен.
Записан

Your password is personal - do not share it with anyone and make sure it is not easy to crack.
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 26-03-2010 20:16 » 

Нужно именно код на C++? Под Windows, надо полагать? Или есть требования по кросс-платформенности?

В общем случае, если требуется делать это программно, то нужно просто создать новый файл там, где надо, и скопировать в него содержимое старого файла.
Записан
Денисrf
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 27-03-2010 06:12 » 

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

char cTemp[1];
FileIshodni.read(cTemp,sizeof cTemp);

while (!FileIshodni.eof())
{

FileCopy.write(cTemp,sizeof cTemp);
FileIshodni.read(cTemp,sizeof cTemp);
}            

что-то у меня хреново он копирует, размер исходного-39.0Кб а копии-1.5Кб. 

 
Записан

Your password is personal - do not share it with anyone and make sure it is not easy to crack.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 27-03-2010 06:33 » 

это не C++
Записан

resource
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 27-03-2010 09:18 » 

Цитата:  Денисrf
по кроссплатформенности требований нет пока

Тогда зачем мучаться, ведь есть для этого функции CopyFile и CopyFileEx
« Последнее редактирование: 27-03-2010 09:19 от resource » Записан
Денисrf
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 27-03-2010 14:30 » new

Спасибо за API функции. Мне только очень интересно если это не С++ то что это?
Записан

Your password is personal - do not share it with anyone and make sure it is not easy to crack.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #6 : 27-03-2010 15:53 » 

Денисrf, хм, сорри. Меня вот это смутило

sizeof cTemp;

я всегда со скобками писал

sizeof(cTemp);

а, оказывается, можно и без скобок. Вернее - мелкомягкий компилятор позволил, а как точно в стандарте - не знаю ))

Записан

Денисrf
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 27-03-2010 18:44 » 

Кстати да, по идее эта функция со скобками... ну это моя ошибка наверное (и компилятора).
Хотя работет вполне ожидаемым образом, во всяком случае на txt. А файлы я все же через батники решил копировать.
Всем спасибо!
Записан

Your password is personal - do not share it with anyone and make sure it is not easy to crack.
darkelf
Молодой специалист

ua
Offline Offline

« Ответ #8 : 29-03-2010 05:32 » 

Я создаю овый файл, открывая в него бинарный поток (или нет?) а в исходный файл открываю поток для чтения и считываю так:
что-то у меня хреново он копирует, размер исходного-39.0Кб а копии-1.5Кб. 
Результирующий файл тоже желательно открывать для чтения в бинарном (не текстовом) виде.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines