Как проверить с помощью WINAPI путь к файлу, диск или файл или каталог? - PullRequest
6 голосов
/ 20 августа 2010

Как проверить с помощью WINAPI путь к файлу - диск или файл или каталог?

Ответы [ 3 ]

7 голосов
/ 20 августа 2010

Использовать GetFileAttributes .

Редактировать: Вы также можете проверить SHGetFileInfo

2 голосов
/ 20 августа 2010

Можно попробовать FindFirstFile:

http://msdn.microsoft.com/en-us/library/aa364418%28v=VS.85%29.aspx

Когда у вас есть данные поиска (переданные в качестве второго аргумента этой функции):

if(result->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
    //file is a directory
}
else
{
    //file is not a directory
}

Кроме того, чтобы посмотреть, является ли что-то томом, можно попробовать что-то вроде:

if(result->dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)
{
    if(result->dwReserved0 == IO_REPARSE_TAG_MOUNT_POINT)
    {
        //path is a volume; try using GetVolumeNameForVolumeMountPoint for info
    }
}

НТН

1 голос
/ 20 августа 2010

Посмотрите, есть ли у пути буква диска перед ним?Все UNC принимают форму "\\ server \ share \ file_path" Без буквы диска.

Из любопытства я посмотрел это.Исходя из этой статьи MSDN Именование файлов, путей и пространств имен , мне кажется, что мой совет именно так и говорит:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...