/*******************************************/ //函数功能:读取目录,获得.mp3,.lrc文件的文件名 //参数: void //返回值:返回歌词、歌曲链表的头指针 /********************************************/ #include"main.h" struct dirent *ptr; DIR *dir; char *dir_lrc[255],*dir_songname[255]; /*******************************************/ //函数功能:读取目录,获得.mp3文件的文件名 // //返回值:返回歌曲链表的头指针 /********************************************/ SONGNAME *readsongname(void){ int flag=0,i=1; SONGNAME *pa,*pb; SONGNAME *head; dir=opendir("./song/");//打开目录 if(dir==NULL){ //判断要打开的文件夹是否存在 printf("can't open the song dir\n"); exit(0); } while((ptr=readdir(dir))!=NULL){//读取文件夹中的内容,只识别.mp3文件 printf("%s\n",ptr->d_name); char *p=strrchr(ptr->d_name,'.'); if(!strcmp(p,".mp3")){ char *temp = (char *)calloc(sizeof(char),100); strcpy(temp,"./song/"); strcat(temp,ptr->d_name); if(flag==0){ head=malloc(sizeof(SONGNAME)); head->songname=temp; head->num=0; pa=head; flag=1; } else { pb=malloc(sizeof(SONGNAME)); pa->next=pb; pb->songname=temp; pb->num=i++; printf("%s\n",temp); pa=pb; } } } close(dir);//关闭目录返回主目录 return head; } /*******************************************/ //函数功能:读取目录,获得.lrc文件的文件名 // //返回值:返回歌词链表的头指针 /********************************************/ SONGLRC *readlrc(){ int flag=0,i=1; SONGLRC *pa,*pb; SONGLRC *head; dir=opendir("./lrc/");//打开歌词目录 if(dir==NULL){ //判断要打开的文件夹是否存在 printf("can't open the lrc dir\n"); exit(0); } while((ptr=readdir(dir))!=NULL){ //读取文件夹中的内容,只识别.lrc文件 char *p=strrchr(ptr->d_name,'.'); if(!strcmp(p,".lrc")){ char *temp = (char *)calloc(sizeof(char),100); strcpy(temp,"./lrc/"); strcat(temp,ptr->d_name); if(flag==0){ head=malloc(sizeof(SONGLRC)); head->songlrc=temp; head->num=0; pa=head; flag=1; } else { pb=malloc(sizeof(SONGLRC)); pa->next=pb; pb->songlrc=temp; pb->num=i++; printf("%s\n",pb->songlrc); pa=pb; } } } close(dir);//关闭目录返回主目录 return head; }
读取目录下.mp3和.lrc文件的文件名