将目录作为命令行参数传递并获取文件列表?

时间:2013-02-01 23:23:25

标签: c directory command-line-arguments

我正在尝试传递归档和目录名称命令行参数,并提取目录中的文件列表。在eclipse中我使用“-A [archive.a] [directory_name]”, 但是eclipse一直在尝试编译测试目录文件。有什么建议?下面的代码示例是我的程序的精简版本: [编辑:好的,我通过移出工作目录得到它进行编译...但是它在readdir命令崩溃...任何提示?] [编辑:好的,我发现我可以手动解析文件,所以我猜这个问题现在是学术性的。大家好。]

int main(int argc, char **argv)                 
{      
    char **fileList = (char **)(malloc(sizeof(char *) * argc));
    output = argv[2];        //archive name
    DIR *d;
    struct dirent *dir;
    d = opendir(argv[3]);        //directory name

    int i = 0;
    while((dir = readdir(d) != NULL))
    {
        fileList[i] = (char *)(malloc(sizeof(char) * strlen(dir->d_name)));
        fileList[i] = dir->d_name;        //extract file names into array of strings
        ++i;
    }
    int j;
    for(j = 0; j <= argc; ++j)
    printf("%s\n", fileList[j]);        //print out list of file names

    closedir(d);
}

0 个答案:

没有答案