Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 42, средняя оценка - 4.93
IIIa66uMEM6eP
заставил Бендера
435 / 291 / 10
Регистрация: 05.12.2010
Сообщений: 1,644
Записей в блоге: 6
#1

Копирование файлов без win api - C++

26.04.2011, 18:21. Просмотров 5585. Ответов 41
Метки нет (Все метки)

Добрый день.

Что прошу:
Мне нужно выполнить копирование моего (ехе) в определенные директории - папки.
Мне подсказали что можно использовать CopyFile, CreateDirectory, но они для win api. Можно подключить windows.h - но там тоже не все ровно с этими функциями..
подскажите -
как в с++ (стандарт, не студия, не билдер)
создавать директории, копировать файлы (ехе)
без использования win api.
если не трудно то кинь кусок кода для данных команд, какие библиотеки подключать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2011, 18:21     Копирование файлов без win api
Посмотрите здесь:
C++ WIN API
WIN API, кодировка C++
C++ Потоки win api
Преимущество Win Api C++
Построение графика в Win Api C++
win api точки входа C++
C++ DrawText win api - Мистика =)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zim32
1 / 1 / 0
Регистрация: 09.01.2011
Сообщений: 37
26.04.2011, 18:31     Копирование файлов без win api #2
А в стандратной библиотеке с++ разве нету для этого средств? Правда они в итоге всеравно скорее всего вызывают win32 ф-ции
IIIa66uMEM6eP
заставил Бендера
435 / 291 / 10
Регистрация: 05.12.2010
Сообщений: 1,644
Записей в блоге: 6
26.04.2011, 19:02  [ТС]     Копирование файлов без win api #3
Цитата Сообщение от zim32 Посмотреть сообщение
разве нету для этого средств
увы.. не обнаружил
easybudda
Эксперт CЭксперт С++
9461 / 5474 / 927
Регистрация: 25.07.2009
Сообщений: 10,496
26.04.2011, 19:08     Копирование файлов без win api #4
Цитата Сообщение от IIIa66uMEM6eP Посмотреть сообщение
увы.. не обнаружил
Есть функция для создания директорий
man mkdir
Ну а файлы копировать можно собственным нехитрым велосипедом. К примеру, если отсюда всё лишнее повыкидывать - можно сам процесс копирования в отдельную функцию вынести...
zim32
1 / 1 / 0
Регистрация: 09.01.2011
Сообщений: 37
26.04.2011, 19:09     Копирование файлов без win api #5
Ну значит тогда открываете исходный файл. Целевой. И побайтово копируете содержимое
easybudda
Эксперт CЭксперт С++
9461 / 5474 / 927
Регистрация: 25.07.2009
Сообщений: 10,496
26.04.2011, 19:11     Копирование файлов без win api #6
zim32, побайтово - это круто, но как-то долго... Буфер размером пропорциональный блоку на диске (обычно 512 байт) - наш выбор!
IIIa66uMEM6eP
заставил Бендера
435 / 291 / 10
Регистрация: 05.12.2010
Сообщений: 1,644
Записей в блоге: 6
26.04.2011, 19:14  [ТС]     Копирование файлов без win api #7
Цитата Сообщение от easybudda Посмотреть сообщение
для создания директорий
в с++ она работает??
Цитата Сообщение от easybudda Посмотреть сообщение
если всё лишнее повыкидывать
))) ну как так) я не знаю что там лишнее, можно снести какую нибудь мелочь а потом удивляться почему оно не работает.

Цитата Сообщение от zim32 Посмотреть сообщение
побайтово копируете содержимое
покажите.. с помощью чего побайтово копируем? может программка какая есть.
PS: просьба код на С++
zim32
1 / 1 / 0
Регистрация: 09.01.2011
Сообщений: 37
26.04.2011, 19:17     Копирование файлов без win api #8
Я не с++ программист. Ну есть же ф-ции типа fopen, fputs, fwrite, fread
Это всё Standart C++ library

http://msdn.microsoft.com/ru-ru/libr...(v=VS.90).aspx

Там и примеры есть. О святы примеры MSDN )
IIIa66uMEM6eP
заставил Бендера
435 / 291 / 10
Регистрация: 05.12.2010
Сообщений: 1,644
Записей в блоге: 6
26.04.2011, 19:25  [ТС]     Копирование файлов без win api #9
Цитата Сообщение от zim32 Посмотреть сообщение
Это всё Standart C++
стандарт... для VS это стандарт.. Для DEV-C++ это не работает
zim32
1 / 1 / 0
Регистрация: 09.01.2011
Сообщений: 37
26.04.2011, 19:28     Копирование файлов без win api #10
Не знаю даже чем вам помочь тогда. А что такое DEV-C++
IIIa66uMEM6eP
заставил Бендера
435 / 291 / 10
Регистрация: 05.12.2010
Сообщений: 1,644
Записей в блоге: 6
26.04.2011, 19:32  [ТС]     Копирование файлов без win api #11
Цитата Сообщение от zim32 Посмотреть сообщение
DEV-C++
IDE.. работает на стандарте с++..
не то что VS, Borland - у которых свои дополнения и стандарты к языку.
zim32
1 / 1 / 0
Регистрация: 09.01.2011
Сообщений: 37
26.04.2011, 19:34     Копирование файлов без win api #12
Вы хотите сказать что у вас нету ф-ции fopen или fwrite?
Может вы забыли подключить <stdio.h>

Вообще конечно С++ на удивление консервативен. Он мне напоминает мамонта порой
Давно уже не задавался вопросами как скопировать файл.
НА ПХП например copy($src, $desc)
А тут черти что
IIIa66uMEM6eP
заставил Бендера
435 / 291 / 10
Регистрация: 05.12.2010
Сообщений: 1,644
Записей в блоге: 6
26.04.2011, 19:40  [ТС]     Копирование файлов без win api #13
на гуглил..

Не по теме:

в std с++ не предусмотрены средства для работы с файловой системой.
Если нужно брать boost::filesystem;



копированием блоками памяти
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
#include <fcntl.h>
#include <stdio.h>
 
#define LEN 1024
 
int main(int argc, char *argv[]){
   int fd;
   char *buffer;
   fd = open("file.txt", O_RDWR);   // открываем файл на чение-запись
   if(fd<0)                                    // ошибка открытия
      exit(1);
   buffer = (char*)malloc(LEN);     // выделяем память под буффер
   if(!buffer){
       close(fd);
       exit(1);
   }
   while(read(fd, buffer, LEN) > 0){// считываем в буффер блоки данных размером LEN
       //....
       //тут что-то делаем с буффером =)
       //....
   }
   free(buffer); //освобождаем буффер
   close(fd);     // закрываем файловый дескриптор
   return 0;
}
как через man sendfile увы не допру..

Добавлено через 1 минуту
Цитата Сообщение от zim32 Посмотреть сообщение
Вы хотите сказать что у вас нету ф-ции fopen или fwrite
ох.. там перенаправление потоков.. открыл поток, записал файл и т.д. но как взять экзешник и скопировать в нужную директорию хз..
zim32
1 / 1 / 0
Регистрация: 09.01.2011
Сообщений: 37
26.04.2011, 19:52     Копирование файлов без win api #14
Цитата Сообщение от IIIa66uMEM6eP Посмотреть сообщение
в std с++ не предусмотрены средства для работы с файловой системой.
Извините но это чушь полная

http://www.cplusplus.com/reference/iostream/

Добавлено через 6 минут
Мало того в с++ даже 2 системы ввода вывода. Одна унаследована от С (fopen, fwrite и т.д) друга обїектная обертка над всем єтим в виде iostream
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2011, 19:57     Копирование файлов без win api
Еще ссылки по теме:
C++ Win Api ошибка undefined reference to
C++ Глобальное считывание комбинаций win api
C++ Win api GetDlgItemInt что за второй параметр
C++ win API:найти информацию о логических дисках.
Много ли времени нужно для изучения win api? C++

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

Или воспользуйтесь поиском по форуму:
PB
Просто прогер
1278 / 1065 / 11
Регистрация: 13.03.2009
Сообщений: 2,502
26.04.2011, 19:57     Копирование файлов без win api #15
Раз в C++ такие проблемы с копированием файлов, то написал специально для Си-программистов DLL, на бейсике (PureBasic).
Код
Copy_File(SourceFile.s, NewFile.s)
Первый аргумент - путь к копируемому файлу, а второй, путь куда скопировать файл.
Не стоит благодарности, за пару минут сделал.
Вложения
Тип файла: rar Copy_File.rar (1.7 Кб, 62 просмотров)
Yandex
Объявления
26.04.2011, 19:57     Копирование файлов без win api
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru