从目录C ++打开多个文件

时间:2015-11-01 16:54:39

标签: c++

我正在尝试从目录中打开文件,但每次我显示我的文件时,我都会在顶部显示这3个点。因此,例如我打开的目录被称为"我的文档"输出将是3个点,如下所示 。 .. names.txt中 Jobs.txt

Names.txt和Jobs.txt是我想要实现的唯一输出,任何人都可以提供帮助。

我的代码

int getDoc(string doc, vector<string> &documents){

    DIR *dp;
    struct dirent *dirp;
    if ((dp = opendir(doc.c_str())) == NULL){
        cout << "Error(" << errno << ") opening" << doc << endl;
        return errno;
    }
    while ((dirp = readdir(dp)) != NULL){
        documents.push_back(string(dirp->d_name));
    }
    closedir(dp);
    return 0;
}

顺便使用dirent.h

3 个答案:

答案 0 :(得分:2)

.是当前目录,..是上级目录。如果你不想要它们,只需将它们过滤掉。

答案 1 :(得分:1)

3个点实际上是2个目录。第一个名为&#39;。&#39;指的是当前目录。如果您尝试打开它,它将引导您返回到同一目录。例如,目录C:\Users\Daniel等于C:\Users\Daniel\. 第二个目录是&#39; ..&#39;。它指的是父目录。因此C:\Users目录等同于C:\Users\Daniel\..

这2个目录不真实。它们由操作系统模拟。如果您不想打印它们,只需在跳过前两个元素后开始打印列表。这两个目录总是先列出来。

答案 2 :(得分:0)

目录.是当前目录。目录..是父目录。所以他们将在名单上

就像运行命令ls -a

一样