Как проверить, существует ли каталог в Windows на языке C?

Вопрос

В приложении Windows C я хочу проверить параметр, переданный в функцию, чтобы убедиться, что указанный путь существует. *

Как проверить, существует ли каталог в Windows в C?

* Я понимаю, что вы можете попасть в состояние гонки, когда между временем, когда вы проверяете существование, и временем, когда вы используете путь, который больше не существует, но я могу справиться с этим.

Дополнительная информация

Явное знание того, что каталог существует или не существует, может вызвать затруднения, когда в игру вступают разрешения. Возможно, что при попытке определить, существует ли каталог, процесс не имеет разрешений на доступ к каталогу или родительскому каталогу. Это нормально для моих нужд . Если каталог не существует ИЛИ я не могу получить к нему доступ, оба они рассматриваются как сбой неверного пути в моем приложении, поэтому мне не нужно различать. (Виртуальные) бонусные баллы, если ваше решение предусматривает это различие.

Любое решение на языке C, библиотеке времени выполнения C или Win32 API подойдет, но в идеале я хотел бы придерживаться библиотек, которые обычно загружаются (например, kernel32 , user32 и т. д.) и избегайте решений, связанных с загрузкой не-стандартные библиотеки (например, PathFileExists в Shlwapi.dll). Опять же, (виртуальные) бонусные баллы, если ваше решение кроссплатформенное.

Связанные

Как мы можем проверить, существует ли файл или нет, используя программу Win32?

63
задан Community 23 May 2017 в 11:33
поделиться