在C / C++中,是否存在检查特定文件是否在特定路径上的现有方法?我想象语法可能看起来像stat(),但具有用于文件名和路径的附加参数。

pathstat( struct stat stResult, const char* filename, const char* path );

最佳答案

使用带有access()标志的F_OK函数将检查您的文件是否存在。但是在此之前,您必须先准备文件路径(通过filenamepath变量),然后再将文件路径作为输入参数传递给access()函数。

在这个答案中,我假设您使用linux作为平台

void pathstat( struct stat stResult, const char* filename, const char* path )
    char *file;
    int path_len;

    if (!filename) {
        // set error in the stResult
        return;
    }

    path_len = path ? strlen(path) : 0;

    file = malloc((strlen(filename) + path_len + 2) * sizeof(char));
    // PREPARE THE FILE PATH
    if (path && path[0] && path[path_len-1]=='/')
        sprintf(file,"%s%s",path,filename);
    else if (path && path[0])
        sprintf(file,"%s/%s",path,filename);
    else
        file = strcpy(file,filename);

    //NOW CHECK IF THE FILE PATH EXIST WITH ACCESS
    if (access(file, F_OK) != -1) {
        //file exist
    } else {
        // file does not exxit
    }
    free(file);
}

关于c++ - C++在LD_LIBRARY_PATH上查找文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14241172/

10-12 17:39
查看更多