|
/*
*********************************************************************************************************
* 函 数 名: ViewRootDir
* 功能说明: 显示SD卡根目录下的文件名
* 形 参:无
* 返 回 值: 无
*********************************************************************************************************
*/
static void ViewRootDir(void)
{
/* 本函数使用的局部变量占用较多,请修改启动文件,保证堆栈空间够用 */
FRESULT result;
FATFS fs;
DIR DirInf;
FILINFO FileInf;
uint8_t tmpStr[20];
uint32_t cnt = 0;
/* 挂载文件系统 */
result = f_mount(0, &fs); /* Mount a logical drive */
if (result != FR_OK)
{
printf("FileSystem Mounted Failed (%d)\r\n", result);
}
/* 打开根文件夹 */
result = f_opendir(&DirInf, "/"); /* 如果不带参数,则从当前目录开始 */
if (result != FR_OK)
{
printf("Open Root Directory Error (%d)\r\n", result);
return;
}
/* 读取当前文件夹下的文件和目录 */
printf("Name\t\tTyepe\t\tSize\r\n");
for (cnt = 0; ;cnt++)
{
result = f_readdir(&DirInf,&FileInf); /* 读取目录项,索引会自动下移 */
if (result != FR_OK || FileInf.fname[0] == 0)
{
break;
}
if (FileInf.fname[0] == '.')
{
continue;
}
printf("%s", FileInf.fname);
if (strlen(FileInf.fname) < 8) /* 对齐 */
{
printf("\t\t");
}
else
{
printf("\t");
}
if (FileInf.fattrib == AM_DIR)
{
printf("Directory\t");
}
else
{
printf("File\t\t");
}
printf("%d\r\n", FileInf.fsize);
sprintf((char *)tmpStr, "%d", FileInf.fsize);
}
/* 卸载文件系统 */
f_mount(0, NULL);
}
请教下这个语句是什么意思?
if (FileInf.fname[0] == '.')
{
continue;
}
还有文件夹的名字是怎么传递到FileInf.fname数组中那?
谢谢!
|
|