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

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

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

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

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

Добрый день.

Что прошу:
Мне нужно выполнить копирование моего (ехе) в определенные директории - папки.
Мне подсказали что можно использовать CopyFile, CreateDirectory, но они для win api. Можно подключить windows.h - но там тоже не все ровно с этими функциями..
подскажите -
как в с++ (стандарт, не студия, не билдер)
создавать директории, копировать файлы (ехе)
без использования win api.
если не трудно то кинь кусок кода для данных команд, какие библиотеки подключать.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2011, 18:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Копирование файлов без win api (C++):

WIN API - C++
Доброе время суток. Учусь в институте и дали сделать такую хрень: Реализовать приложения Win32API: 1. Окно в центре экрана с фоном...

WIN API, кодировка - C++
Доброго времени суток! Вот если написать: MessageBox(NULL,(LPCWSTR) "Тест",(LPCWSTR)"Системное сообщение", MB_OK); выведется...

Преимущество Win Api - C++
Буквально вчера создал тему, где задал вопрос о средствах, с помощью которых можно работать некоторым образом в командной строке. Нашлось...

Потоки win api - C++
Здравствуйте. Такое задание: необходимо написать программу, которая в главном потоке создает дополнительный поток, и уже в нем...

Литература по Win API - C++
Посоветуйте пожалуйсто книгу где изложены основы программирования с win API доступным языком с использованием C++

win api точки входа - C++
меня интересуют названия функция получения точки входа файла получения конца файла (feof не подойдёт) и функция изменения точки входа. ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zim32
1 / 1 / 0
Регистрация: 09.01.2011
Сообщений: 37
26.04.2011, 18:31 #2
А в стандратной библиотеке с++ разве нету для этого средств? Правда они в итоге всеравно скорее всего вызывают win32 ф-ции
0
IIIa66uMEM6eP
заставил Бендера
436 / 292 / 10
Регистрация: 05.12.2010
Сообщений: 1,645
Записей в блоге: 6
26.04.2011, 19:02  [ТС] #3
Цитата Сообщение от zim32 Посмотреть сообщение
разве нету для этого средств
увы.. не обнаружил
0
easybudda
Модератор
Эксперт CЭксперт С++
9632 / 5580 / 948
Регистрация: 25.07.2009
Сообщений: 10,714
26.04.2011, 19:08 #4
Цитата Сообщение от IIIa66uMEM6eP Посмотреть сообщение
увы.. не обнаружил
Есть функция для создания директорий
man mkdir
Ну а файлы копировать можно собственным нехитрым велосипедом. К примеру, если отсюда всё лишнее повыкидывать - можно сам процесс копирования в отдельную функцию вынести...
1
zim32
1 / 1 / 0
Регистрация: 09.01.2011
Сообщений: 37
26.04.2011, 19:09 #5
Ну значит тогда открываете исходный файл. Целевой. И побайтово копируете содержимое
0
easybudda
Модератор
Эксперт CЭксперт С++
9632 / 5580 / 948
Регистрация: 25.07.2009
Сообщений: 10,714
26.04.2011, 19:11 #6
zim32, побайтово - это круто, но как-то долго... Буфер размером пропорциональный блоку на диске (обычно 512 байт) - наш выбор!
0
IIIa66uMEM6eP
заставил Бендера
436 / 292 / 10
Регистрация: 05.12.2010
Сообщений: 1,645
Записей в блоге: 6
26.04.2011, 19:14  [ТС] #7
Цитата Сообщение от easybudda Посмотреть сообщение
для создания директорий
в с++ она работает??
Цитата Сообщение от easybudda Посмотреть сообщение
если всё лишнее повыкидывать
))) ну как так) я не знаю что там лишнее, можно снести какую нибудь мелочь а потом удивляться почему оно не работает.

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

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

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

Вообще конечно С++ на удивление консервативен. Он мне напоминает мамонта порой
Давно уже не задавался вопросами как скопировать файл.
НА ПХП например copy($src, $desc)
А тут черти что
0
IIIa66uMEM6eP
заставил Бендера
436 / 292 / 10
Регистрация: 05.12.2010
Сообщений: 1,645
Записей в блоге: 6
26.04.2011, 19:40  [ТС] #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
ох.. там перенаправление потоков.. открыл поток, записал файл и т.д. но как взять экзешник и скопировать в нужную директорию хз..
0
zim32
1 / 1 / 0
Регистрация: 09.01.2011
Сообщений: 37
26.04.2011, 19:52 #14
Цитата Сообщение от IIIa66uMEM6eP Посмотреть сообщение
в std с++ не предусмотрены средства для работы с файловой системой.
Извините но это чушь полная

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

Добавлено через 6 минут
Мало того в с++ даже 2 системы ввода вывода. Одна унаследована от С (fopen, fwrite и т.д) друга обїектная обертка над всем єтим в виде iostream
0
PB
Просто прогер
1281 / 1068 / 11
Регистрация: 13.03.2009
Сообщений: 2,502
26.04.2011, 19:57 #15
Раз в C++ такие проблемы с копированием файлов, то написал специально для Си-программистов DLL, на бейсике (PureBasic).
Код
Copy_File(SourceFile.s, NewFile.s)
Первый аргумент - путь к копируемому файлу, а второй, путь куда скопировать файл.
Не стоит благодарности, за пару минут сделал.
1
Вложения
Тип файла: rar Copy_File.rar (1.7 Кб, 62 просмотров)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2011, 19:57
Привет! Вот еще темы с ответами:

DrawText win api - Мистика =) - C++
Начинал изучать C++ на FreeBSD, собирал мейкфайлы и горя не знал. Полез в винде разбираться с её API, и начался дурдом. Вот код. Интересует...

Построение графика в Win Api - C++
Требуется построить график по точкам. Все координаты даны. Не могу найти в пространстве интернета, с помощью каких функций это можно...

Win Api ошибка undefined reference to - C++
пишу функцию BOOL OnCreate(HWND hwnd,LPCREATESTRUCT) { HDC hdc; hBitmap=(HBITMAP)LoadImage(NULL, &quot;IMG.bmp&quot;,IMAGE_BITMAP, 0,...

Глобальное считывание комбинаций win api - C++
Всем привет, есть такая штука как autoHotKey смысл ее действия это считывать нажатия клавиш или комбо, и запускать определенные действия...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.04.2011, 19:57
Ответ Создать тему
Опции темы

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