|
FRESULT result;
FATFS fs;
DIR DirInf;
FILINFO FileInf;
uint32_t cnt = 0;
char lfname[256];
uint8_t read_buf[10];
uint8_t spi_read_buf[10];
uint8_t res = 0;
uint32_t ID = 0;
/* 挂载文件系统 */
result = f_mount(&fs, "0:", 0); /* Mount a logical drive */
if (result != FR_OK)
{
printf("挂载文件系统失败 (%s)\r\n", FR_Table[result]);
}
/* 打开根文件夹 */
result = f_opendir(&DirInf, "0:"); /* 如果不带参数,则从当前目录开始 */
if (result != FR_OK)
{
printf("打开根目录失败 (%s)\r\n", FR_Table[result]);
return;
}
/* 读取当前文件夹下的文件和目录 */
#if _USE_LFN
FileInf.lfname = lfname;
FileInf.lfsize = 256;
#endif
printf("属性 | 文件大小 | 短文件名 | 长文件名\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;
}
/* 判断是文件还是子目录 */
if (FileInf.fattrib & AM_DIR)
{
printf("(0x%02d)目录 ", FileInf.fattrib);
}
else
{
printf("(0x%02d)文件 ", FileInf.fattrib);
}
printf(" %d",DirInf.index);
/* 打印文件大小, 最大4G */
printf(" %10d", FileInf.fsize);
printf(" %s |", FileInf.fname); /* 短文件名 */
// res = f_unlink(FileInf.fname);
// if(res == FR_OK)
// {
// printf(" %s 删除成功 ", FileInf.fname);
// }
printf(" %s\r\n", (char *)FileInf.lfname); /* 长文件名 */
}
/* 卸载文件系统 */
f_mount(NULL, "0:", 0);
以上是硬汉哥的代码 我就加了在遍历根目录下文件的时候打印printf(" %d",DirInf.index),这个index的值很奇怪 都是2的倍数
以下是打印结果
属性 | 文件大小 | 短文件名 | 长文件名
(0x32)文件 2 2097152 SPEED00.TXT | Speed00.txt
(0x32)文件 4 2097152 SPEED01.TXT | Speed01.txt
(0x32)文件 6 2097152 SPEED02.TXT | Speed02.txt
(0x32)文件 8 2097152 SPEED03.TXT | Speed03.txt
(0x32)文件 10 2097152 SPEED04.TXT | Speed04.txt
(0x32)文件 12 2097152 SPEED05.TXT | Speed05.txt
请问硬汉哥这是什么问题
|
|