大学生
最后登录1970-1-1
在线时间 小时
注册时间2013-6-4
|
用FATFS读取文件目录的时候,发现一些莫名的问题:
我想读取0:/Pic下所有文件,用串口打印出来:
用的是 2-野火M3-FATFS代码:
结果是这样:
这是一个MicroSD卡文件系统实验(FATFS R0.09)
disk_initialize starting......
长文件名:
短文件名 :.
长文件名:
短文件名 :..
长文件名:新建文件夹
短文件名 :新建文~1
长文件名:新建文件夹 (2)
短文件名 :新建文~2
长文件名:
短文件名 :testtt.bmp
长文件名:
短文件名 :tesddd.bmp
长文件名:BacPic5.bmp
短文件名 :BACPIC5.BMP
长文件名:BacPic4.bmp
短文件名 :BACPIC4.BMP
长文件名:图片BacPic2.bmp
短文件名 :图片BA~1.BMP
长文件名:
短文件名 :
有的有短文件名没有长文件名。。
有的问题件长文件名和短文件名都有,但是短文件名小写变成了大写
int main(void)
{
char lfn[70]; /*为支持长文件的数组,[]最大支持255*/
// char Path[100];
/* USART1 config */
USART1_Config();
/* Interrupt Config */
NVIC_Configuration();
printf("\r\n 这是一个MicroSD卡文件系统实验(FATFS R0.09)\n");
printf ( "\r\n disk_initialize starting......\n " );
f_mount(0,&fs);
finfo.lfname = lfn; //为长文件名分配空间
finfo.lfsize = sizeof(lfn); //空间大小
if(f_opendir(&dirs,"0:/Pic")==FR_OK);
{
// res=f_chdir("0:/pic");
while (f_readdir(&dirs, &finfo) == FR_OK)
{
//if(finfo.lfname[0] == NULL && finfo.fname !=NULL) // 当长文件名称为空,短文件名非空时转换
//finfo.lfname =finfo.fname;
printf( "\r\n 长文件名:%s \r\n", finfo.lfname );
printf( "\r\n 短文件名 :%s \r\n", finfo.fname );
if(strstr( finfo.fname, ".bmp" )!=NULL)
{
// sprintf(Path,"%s/%s","0:/Pic",finfo.lfname);
//DisplayString(0, 0, finfo.lfname);
//printf( "\r\n 路径 :%s \r\n", Path);
// printf( "\r\n 长文件名:%s \r\n", finfo.lfname );
// printf( "\r\n 短文件名 :%s \r\n", finfo.fname );
}
}
}
while (1)
{}
}
折腾了几天了,没找到原因,求教。。谢谢。。
|
|