Нарвался с GetFileAttributes, актуально для всех. Нужно проверять GetLastError. Иначе, если, например, доступ запрёщен, программа будет думать, что файла нет.
:) Мне очень понравилось! В высшей степени занимательно. По крайней мере я сам теперь перейду от ::FindFirstFile(...) к ::GetFileAttributes(...). И к .NET присматриваюсь — так что статья написана очень здорово!
There is also a standard series of such function to get status information on a file: _stat, _wstat, _tstat, ....
A sense of each of them is pretty clear.
Здравствуйте, Аноним, Вы писали:
А>Найдите этот файл — другими способами кроме чем CreateFileW
GetFileAttributesW, как и FindFirstFileW, c успехом примет такой путь на NT. В этом они ничем не отличаются от CreateFileW.
А>Так что CreateFile — это не грамоздкий — а самый правильный путь
Все относительно в этом мире.
-- Alex Fedotov
Re[3]: Как определить, есть ли файл на диске?
От:
Аноним
Дата:
24.07.03 06:23
Оценка:
Здравствуйте, Alex Fedotov, Вы писали:
AF>Здравствуйте, Аноним, Вы писали:
А>>Найдите этот файл — другими способами кроме чем CreateFileW
AF>GetFileAttributesW, как и FindFirstFileW, c успехом примет такой путь на NT. В этом они ничем не отличаются от CreateFileW.
А>>Так что CreateFile — это не грамоздкий — а самый правильный путь
AF>Все относительно в этом мире.
Согласен — но этих тонкостей не было
Хотя надо попробовать — Windows "Экплорер" и другие в этот директорий не зайдут
Re[2]: Как определить, есть ли файл на диске?
От:
Аноним
Дата:
24.07.03 09:46
Оценка:
Здравствуйте, Аноним, Вы писали:
Есть одна не точность CreateDirectoryW нельзя так вызывать — надо последовательно создавать эти директории.
А>Хотя надо попробовать — Windows "Экплорер" и другие в этот директорий не зайдут
WinExplorer иммет внутри (судя по всему) код в стиле:
TCHAR szPath[MAX_PATH];
иначе мне тоже не понятно отношение IE к длинным именам файлов
проверял не так давно лично с IE6SP1 IIRC — до сих пор не поправили.
... << RSDN@Home 1.1 beta 1 >>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
В "Способе 8" правильней проверять что возвращает GetLastError(), если файла нету, то вернет ERROR_FILE_NOT_FOUND.
И еще ошибка в коде: хендл файла не закрывается при существовании файла.