文件的完整路径名和目录中的单独文件

时间:2014-10-02 11:48:51

标签: c

我正在创建一个读取文件的程序。到目前为止,我已经设法让用户输入文件名,然后程序将在目录中搜索它,该目录也是由用户输入的。但我有两个问题。

如何获取我刚刚找到的文件的完整路径名,以及如何分离目录中的文件,因为我希望用户能够输入,如果他想要目录或只是文件。

这是代码的一部分:

while ((c = getopt (argc, argv, "b:")) != -1)
    switch (c)
    {
        case 'b':
            cValue = optarg;
            if(*cValue == 'd')
            {
                int i;
                int a = 0;
                if(argc >= 3)
                {
                    for(i = optind; i < argc - 1; i++)
                    {
                        pDir = opendir(argv[i]);
                        if (pDir == NULL)
                        {
                            printf ("Cannot open directory '%s'\n", argv[i]);
                            return 1;
                        }

                        while ((pDirent = readdir(pDir)) != NULL)
                        {
                            if(strcmp(pDirent->d_name, argv[argc - 1]) == 0)
                            {
                                printf ("[%s]\n", pDirent->d_name);
                            }
                        }
                        closedir (pDir);
                        a++;
                    }
                }
            }
            break;
        default:
            abort();
    }

1 个答案:

答案 0 :(得分:0)

您可以使用

char *getcwd(char *buf, size_t size);
获取当前的工作目录。使用strncpy,您可以获得这些文件的完整路径。