HANDLE hFile = CreateFile(szFile, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
SetEndOfFile(hFile);
Не могу открыть файл для добавления данных, юзая CreateFile
Код:
вот эта бадяга обнуляет файл, вместо того чтобы просто открыть... где я ошибся? помогите советом..
Цитата:
Originally posted by warezhka
Мне необходимо открыть файл и дописать туда пару строчек (если файла нет - его надо создать)
вот эта бадяга обнуляет файл, вместо того чтобы просто открыть... где я ошибся? помогите советом..
Мне необходимо открыть файл и дописать туда пару строчек (если файла нет - его надо создать)
Код:
HANDLE hFile = CreateFile(szFile, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
SetEndOfFile(hFile);
SetEndOfFile(hFile);
вот эта бадяга обнуляет файл, вместо того чтобы просто открыть... где я ошибся? помогите советом..
Ну естественно обнуляет так как функция SetEndOfFile устанавливает в текщюю позицию указатель конца файла. А так как текущяя позиция сразу после открытия файла функцией CreateFile нулевая т.е. самое начало,то соответсвенно и указатель конца файла устанавливается в самое начало и получается что у тебя в данном файле стает 0 байт данных.
Чтобы писать в конец данных делай так:
HANDLE hFile = CreateFile(szFile, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
DWORD sz=GetFileSize(m_hFile,0);
SetFilePointer(m_hFile,sz,0,FILE_BEGIN);
ой ё чето я с**ил... совсем мозги за компом потерял... спасибо....