【发布时间】:2011-07-31 11:52:16
【问题描述】:
我正在尝试编译这段代码,它在 Windows 上运行良好,在 Linux 上运行良好(代码::块):
/* Edit: Includes */
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <...>
/**/
/* === */
/* Function code */
DIR *dp;
dirent *ep;
string name_parent;
dp = opendir(somepath);
name_parent = dp->dd_name; //error
/**/
由于 Windows 上的路径名不区分大小写,我可以读取“c://program files”之类的用户输入并获取“正确”路径“C:\Program Files*”(星号除外 - 或"F://" -> "F:*")。我还使用此变量来获取具有绝对路径值的目录列表,因为 ep->d_name(当然是在一些 readdir() 之后)返回相对于 somepath 的路径。
在 Linux 上,我收到编译器错误(对于“dp->dd_name”):
错误:不完整类型“DIR”的使用无效
我是不是忘记了什么? 还是有逻辑错误?
编辑:我在上面添加了包含(我已经在使用)。
【问题讨论】:
标签: c++ directory dir directory-listing