Как я могу сказать, является ли данный путь каталогом или файлом? (C/C++)

В Java все находится в форме класса.

Если вы хотите использовать любой объект, тогда у вас есть две фазы:

  1. Объявить
  2. Инициализация

Пример:

  • Объявление: Object a;
  • Инициализация: a=new Object();

То же самое для концепции массива

  • Объявление: Item i[]=new Item[5];
  • Инициализация: i[0]=new Item();

Если вы не дают секцию инициализации, тогда возникает NullpointerException.

39
задан Kirill Kobelev 23 December 2016 в 08:36
поделиться

4 ответа

Звоните GetFileAttributes и проверьте на атрибут FILE_ATTRIBUTE_DIRECTORY.

28
ответ дан Colen 27 November 2019 в 02:02
поделиться

статистика () скажет Вам это.

struct stat s;
if( stat(path,&s) == 0 )
{
    if( s.st_mode & S_IFDIR )
    {
        //it's a directory
    }
    else if( s.st_mode & S_IFREG )
    {
        //it's a file
    }
    else
    {
        //something else
    }
}
else
{
    //error
}
105
ответ дан mk12 27 November 2019 в 02:02
поделиться

В Win32 я обычно использую PathIsDirectory и его родственные функции. Это работает в Windows 98, которые не делает GetFileAttributes (согласно документации MSDN.)

13
ответ дан jeffm 27 November 2019 в 02:02
поделиться

В Windows можно использовать GetFileAttributes на открытый дескриптор .

2
ответ дан Scott 27 November 2019 в 02:02
поделиться