我在读取文件目录时,发现只有 执行printf("%s/%s\n", path, fn);这一句时,我的程序才能正常读出文件目录,我的程序如下:
FRESULT scan_files (char* path)
{
FRESULT res;
FILINFO fno;
DIR dir;
int i,i_name = 0;
char *fn;
#if _USE_LFN
static char lfn[_MAX_LFN * (_DF1S ? 2 : 1) + 1];
fno.lfname = lfn;
fno.lfsize = sizeof(lfn);
#endif
disk_initialize(0);
f_mount(0, &fs);
res = f_opendir(&dir, path);
if (res == FR_OK) {
i = strlen(path);
for (;;) {
res = f_readdir(&dir, &fno);
if (res != FR_OK || fno.fname[0] == 0) break;
i_name ++;
if (fno.fname[0] == '.') continue;
#if _USE_LFN
fn = *fno.lfname ? fno.lfname : fno.fname;
#else
fn = fno.fname;
#endif
if (fno.fattrib & AM_DIR) {
sprintf(&path, "/%s", fn);
res = scan_files(path);
if (res != FR_OK) break;
path = 0;
} else {
USART_SendData(USART3,0x55);
printf("%s/%s\n", path, fn);
USART_SendData(USART3,0xAA);
stringcopy(Files_Pro[i_name - 1].name, fno.fname);
Files_Pro[i_name - 1].time = fno.fdate; //读取文件建立时间
Files_Pro[i_name - 1].size = fno.fsize;
}
f_close(&fsrc);
}
}
Files_count = i_name;
f_mount(0,NULL);
return res;
}
已经弄了好几天了,求解,急!谢谢各位了
|