我正在使用如下的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 / folder
时,我能够获得文件名列表答案 0 :(得分:2)
请注意/ path / to / folder与/ path / to / folder /
不同答案 1 :(得分:2)
errno
值2表示ENOENT
(它是错误NO EN尝试的缩写),即&#34; 目录不存在,或者名称是空字符串< / EM>&#34 ;.
如何在代码中定义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"