在c ++中使用opendir打开现有目录时出错

我正在使用opendir()来访问一个目录。

DIR *dp;
if((dp  = opendir(dir.c_str())) == NULL) {
    cout << "Error(" << errno << ") opening " << dir << endl;
    return errno;
}

但是,即使目录存在,我仍然会收到以下错误。

Error(2) opening /path/to/folder/

当我执行ls / path / to /文件夹时,我能够获得文件名列表


请注意,/ path / to /文件夹与/ path / to / folder /


errno值2表示ENOENT (它是Error NO ENTry的缩写),即“目录不存在或名称为空字符串”。 你如何在代码中定义dir

std::string dir = "/path/to/folder/";
DIR* dp = opendir(dir.c_str());

if (dp == NULL) 
{
    std::cout << "Error(" << errno << ") opening " << dir << std::endl;
    perror("opendir");

    return errno;
}

closedir(dp);

更新#1:

尝试调用你的shell脚本:

main.sh folder/ foldername 

其中main.sh包含:

#!/bin/sh                                                                                                                                                                         
path="$1$2"
echo "$path"
ls -l "$path"
链接地址: http://www.djcxy.com/p/29145.html

上一篇: Error opening existing directory using opendir in c++

下一篇: Bash variable concatenation fails inside loop