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

  • Автор темы coin
  • Дата начала
C

coin

#1
Народ, как мне полностью скопировать файл (true color bmp в моем случае) использую MS VS 2005. Из того, что приходить в голову, это считывание по 1 байту информации и запись в другой файл, и так до EOF. Наверное и так будет работать, но нет ли уже готового варианта?
Зарание благодарен.
 

SunSanych

Well-known member
28.06.2006
71
0
#2
Есть Windows API функция

Код:
 CopyFile(LPCWSTR lpExistingFileName, LPCWSTR lpNewFileName, BOOL bFailIfExists);
Как использовать должно быть понятно из её описания.
 
C

coin

#3
Написал вот так:
Код:
LPCWSTR aa = L"in.bmp";
LPCWSTR bb = L"out.bmp";
BOOL t=true;
CopyFile(aa,bb,t);
Но не могу понять, как преобразовать char* c именем файла в LPCWSTR.
Тоесть мне нужно путь к файлу описать динамически, в процессе работы, а не на этапе компиляции.
Куда копать?
 
D

Dimmuborgir

#4
на самом деле все проще
Код:
const wchar_t* pszFile1=L"in.bmp";
const wchar_t* pszFile2=L"out.bmp";
CopyFile(pszFile1,pszFile2,1);
 
C

coin

#5
А разницы? мне нужно имена и пути получить в процессе работы программы, приведенное выше отличается реализацией, а не смыслом :)
 
C

coin

#6
Кстати, еще вопрос, как получить размер файл (текстового) ?
 
C
#10
Повис собственно воопрос, как LPCWSTR получиться в процессе работы. что то вроде LPCWSTR t = abc; где abc - *char.
 

shisik

Well-known member
26.08.2007
154
0
#11
тогда abc должно быть wchar_t *. Можно вместо CopyFile использовать CopyFileA, тогда параметры будут иметь тип char *.
 
C
#12
shisik большой респект :)
Тогда еще вопрос, где можно почитать про такие вот апишные (мфцшые) функции работы с файлами,
а так же таки узнать, ктож такие wchar_t и LPCWSTR?
 

shisik

Well-known member
26.08.2007
154
0
#13
Про АПИшные функции можно почитать в MSDN http://msdn.microsoft.com/ru-ru/library/default.aspx
Что касается wchar_t и LPCWSTR - это соответственно юникод-символ и указатель на юникод-строку (typedef wchar_t * LPCWSTR; ). От ANSI-строки (char*) она отличается тем, что содержит 2-байтные символы.