指定されたパスがディレクトリかファイルかを確認するにはどうすればよいですか? (C/C++)

stat() がこれを教えてくれます。

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
}

GetFileAttributes を呼び出し、FILE_ATTRIBUTE_DIRECTORY 属性を確認します。


Win32 では、通常、PathIsDirectory とその姉妹関数を使用します。これは Windows 98 では機能しますが、GetFileAttributes では機能しません (MSDN のドキュメントによると)。