C++ 如何检查给定路径是否指向现有文件或目录?

C++ 如何检查给定路径是否指向现有文件或目录?,c++,file,winapi,path,directory,C++,File,Winapi,Path,Directory,我需要一个函数,只要在给定的路径上有一个实体,不管是文件还是目录,就可以简单地返回bool。在winapi或stl中使用什么函数?将返回有关文件系统对象的信息,可以查询该对象以确定它是文件还是目录,如果它不存在,它将失败 例如: #include <windows.h> #include <iostream> int main(int argc, char* argv[]) { if (2 == argc) { const DWORD a

我需要一个函数,只要在给定的路径上有一个实体,不管是文件还是目录,就可以简单地返回bool。在winapi或stl中使用什么函数?

将返回有关文件系统对象的信息,可以查询该对象以确定它是文件还是目录,如果它不存在,它将失败

例如:

#include <windows.h>
#include <iostream>

int main(int argc, char* argv[])
{
    if (2 == argc)
    {
        const DWORD attributes = GetFileAttributes(argv[1]);
        if (INVALID_FILE_ATTRIBUTES != attributes)
        {
            std::cout << argv[1] << " exists.\n";
        }
        else if (ERROR_FILE_NOT_FOUND == GetLastError())
        {
            std::cerr << argv[1] << " does not exist\n";
        }
        else
        {
            std::cerr << "Failed to query "
                      << argv[1] 
                      << " : "
                      << GetLastError()
                      << "\n";
        }

    }
    return 0;
}
#包括
#包括
int main(int argc,char*argv[])
{
如果(2==argc)
{
const DWORD attributes=GetFileAttributes(argv[1]);
if(无效的文件属性!=属性)
{
std::cout将返回有关文件系统对象的信息,可以查询该对象以确定它是文件还是目录,如果它不存在,它将失败

例如:

#include <windows.h>
#include <iostream>

int main(int argc, char* argv[])
{
    if (2 == argc)
    {
        const DWORD attributes = GetFileAttributes(argv[1]);
        if (INVALID_FILE_ATTRIBUTES != attributes)
        {
            std::cout << argv[1] << " exists.\n";
        }
        else if (ERROR_FILE_NOT_FOUND == GetLastError())
        {
            std::cerr << argv[1] << " does not exist\n";
        }
        else
        {
            std::cerr << "Failed to query "
                      << argv[1] 
                      << " : "
                      << GetLastError()
                      << "\n";
        }

    }
    return 0;
}
#包括
#包括
int main(int argc,char*argv[])
{
如果(2==argc)
{
const DWORD attributes=GetFileAttributes(argv[1]);
if(无效的文件属性!=属性)
{
std::cout有(shlwapi)

确定文件系统对象(如文件或文件)的路径 文件夹是有效的

(UNC股份的注意事项)

有(shlwapi)

确定文件系统对象(如文件或文件)的路径 文件夹是有效的


(UNC共享的注意事项)

此外,260个字符的路径名长度限制不仅仅是理论上的限制。中可以找到限制较少的实现的替代方案。此外,260个字符的路径名长度限制不仅仅是理论上的限制。中可以找到限制较少的实现的替代方案。