/*******************************************************************************
* Function Name : scan_current_folder
* Description : 列举文件夹
* Input : None.
* Output : None
* Return : None
*******************************************************************************/
void scan_current_folder(char *dirname)
{
FATFS FatFs; /* File system object for log ical drive */
FILINFO finfo;
DIR dirs;
FRESULT res; // FatFs function common result code
char path[20];
int i=0,j=0;
int Directory_num=0,Archive_num=0;
disk_initialize(0);//初始化驱动器
f_mount(0, &FatFs);//卸载或挂在一个逻辑驱动器
res=f_opendir(&dirs, dirname);
if ( res== FR_OK)
{
printf("\r\n\r\n%20s\r\n","*********************--File--*********************");
while ((f_readdir(&dirs, &finfo) == FR_OK) && finfo.fname[0])
{
if (finfo.fattrib & AM_DIR)//如果是文件
{
printf("\r\n%s/%s", path, &finfo.fname[0]);
strcpy(&ObjFile[Directory_num++].filename[0],(uint8_t *)&finfo.fname[0]);
}
if (finfo.fattrib & AM_ARC)//如果是文件
{
printf("\r\n%s/%s", path, &finfo.fname[0]);
strcpy(&ObjFile[Archive_num++].wordname[0],(uint8_t *)&finfo.fname[0]);
}
else
{
}
}
if( Directory_num|Archive_num==0 )//无文件夹
{
printf("\r\n%33s\r\n","<无文件夹>");
}
printf("Print screen.%d,%d\n",i,j);
// for(j=0;j<Directory_num;j++)
// {
// DisPlay_12X12_StrDis(&ObjFile[j].filename[0],0,j*12);
// }
for(j=0;j<Archive_num;j++)
{
DisPlay_12X12_StrDis(&ObjFile[j].wordname[0],0,(j)*12);
}
}
// Unregister a work area before discard it
f_mount(0, NULL);
}
|