Автор
|
Тема: API: CreateFile
|
server_mouse |
опубликован 12-02-2002 12:36 MSK
Hi ALL!Вот делаю так: HANDLE log=CreateFile("c:\\tst.log",GENERIC_WRITE,FILE_SHARE_WRITE, NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_SYSTEM,NULL); if(log) { DWORD len; WriteFile(log,buf,strlen(buf),&len,NULL); CloseHandle(log); } В итоге физически на диске файл не создаётся, хотя под отладкой запись проходит нормально. В MSDN чего-то сказано про пути вида "\\?\C:\myworld\private". Пробовал делать и так "\\\\?\\c:\\tst.log", но безтолку. Вправте ручонки плз.
|
qwertyuiop
|
опубликован 12-02-2002 12:45 MSK
HANDLE hfile = CreateFileA("c:\\log.txt",GENERIC_READ|GENERIC_WRITE,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_RANDOM_ACCESS,NULL);
|
Drunkard
|
опубликован 12-02-2002 13:51 MSK
На первый взгляд, все нормально. Для выяснения гадостей, вставь анализ на создание и запись файла. GetLastError() все сразу покажет. Типа такого: hf=CreateFile(FullName,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_WRITE|FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,(HANDLE)NULL); // Если файл открылся if(hf!=INVALID_HANDLE_VALUE) { // Здесь запись в файл } else { Error=GetLastError(); FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NULL,Error,LANG_SYSTEM_DEFAULT,BufErr,80,NULL); sprintf(Str,"Ошибка %u: %s",Error,BufErr); MessageBox(hwnd,Str,sTitle,MB_SYSTEMMODAL|MB_OK); return FALSE; }
|
server_mouse
|
опубликован 12-02-2002 14:16 MSK
Опссссс. Сорри люди! Я глюкнул и не смог найти системный файл. Всё действительно было нормально. И WindowsCommander не смог найти его, даже незнаю почему... |