我正在创建一个读取文件的程序。到目前为止,我已经设法让用户输入文件名,然后程序将在目录中搜索它,该目录也是由用户输入的。但我有两个问题。
如何获取我刚刚找到的文件的完整路径名,以及如何分离目录中的文件,因为我希望用户能够输入,如果他想要目录或只是文件。
这是代码的一部分:
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();
}
答案 0 :(得分:0)
您可以使用
char *getcwd(char *buf, size_t size);
获取当前的工作目录。使用strncpy
,您可以获得这些文件的完整路径。