我需要在C程序中使用目录...目录将是一个参数,我需要检查文件夹中的所有文件,如果其中一个文件是文件夹,我需要访问它,也,我需要回到目录中,即“。”和“..”。
我正在使用库<dirent.h>
,现在我只能显示我正在运行程序的文件夹中的所有内容(即program.c,folder1等)。如果我使用“桌面”之类的东西作为参数,它将显示错误说明:
无法打开目录:没有这样的文件或目录。
你能告诉我怎么做吗?
#include <dirent.h>
#include <stdio.h>
int main(int argc, char *argv[]){
DIR *dp;
struct dirent *ep;
dp = opendir (argv[1]);
if (dp != NULL){
while (ep = readdir (dp))
puts (ep->d_name);
(void) closedir (dp);
perror ("Couldn't open the directory");
}
return 0;
}
示例:
xx@xfx gcc e.c -o hola
xx@xfx ~/Desktop $ ./hola ./
hola
10475718_921955664486299_2309306989404354546_n.jpg
practica 4.tar.gz
h.c
pro
two-type-of-programmers-funny-jokes.png
as.c
a.c
prac 4
hol
Pr.hs
ej.c
du.c
.
tar
thats-racist-gif-1.gif
pract.
pract.c
e.c
prac.c
pract.c
..
Lab files #2
ejer1.c
music.pls
Lab files #4
ho2.c
dir2
ejero1.c
t
Mate
Couldn't open the directory: Success