Самый простой способ проверить, существует ли файл / каталог, это использовать GetFileAttributes
:
if (GetFileAttributes(newPath) == INVALID_FILE_ATTRIBUTES) {
CreateDirectory(newPath,NULL);
}
Обратите внимание, что функция вернет INVALID_FILE_ATTRIBUTES
даже в случае сбоя по какой-либо другой причине, например, из-за отсутствия прав доступа к файлу, поэтому вам следует проверить возвращаемое значение CreateDirectory
, чтобы убедиться, что оно успешно выполнено.
На самом деле вам не нужно проверять, существует ли каталог; CreateDirectory
установит код ошибки, если каталог уже существует:
if (!CreateDirectory(newPath,NULL)) {
if (GetLastError() == ERROR_ALREADY_EXISTS) {
// directory already exists
} else {
// creation failed due to some other reason
}
}