生命之风的低语
Whispers in the Wind of Life.

C语言实现的获取文件夹内文件名

2025-09-08 03:23:20

今天想在darknet实现的yolofastest中添加一些测试代码,需要实现用C实现获取文件夹内文件名字,并转换为完整路径的功能。太久没写C了,都忘了,记录一下:

#include

DIR *dp;

struct dirent *dirp;

char filedir[] = "/home/xxx/images/";

if((dp = opendir(filedir)) == NULL)

printf("Can't open %s\n", filedir);

while((dirp = readdir(dp)) != NULL)

{

if(strcmp(dirp->d_name,".")==0 || strcmp(dirp->d_name,"..")==0) ///current dir OR parrent dir

continue;

char tempfiledir[70];

strcpy(tempfiledir, filedir);

strcat(tempfiledir, dirp->d_name);

printf(tempfiledir);

printf("\n");

}

closedir(dp);

利用C实现获取完整路径下的文件名及后缀:

//获取文件名

char imgname[20];

char fn[30],*p;

strcpy(fn,(p=strrchr(filename,'//')) ? p+1 : filename);

int length = strlen(fn);

for (int i=0; i

imgname[i] = fn[i];

printf("%s\n", imgname);

strcpy(fn, (p=strrchr(filename, '.')) ? p+1 : filename);//获取文件后缀