在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