|
比如,操作盘符2:
- /*
- *********************************************************************************************************
- * 函 数 名: ViewRootDir
- * 功能说明: 显示SD卡根目录下的文件名
- * 形 参:无
- * 返 回 值: 无
- *********************************************************************************************************
- */
- static void ViewRootDir(void)
- {
- /* 本函数使用的局部变量占用较多,请修改启动文件,保证堆栈空间够用 */
- FRESULT result;
- FATFS fs;
- DIR DirInf;
- FILINFO FileInf;
- uint32_t cnt = 0;
- char lfname[256];
- /* 挂载文件系统 */
- result = f_mount(&fs, "2:", 0); /* Mount a logical drive */
- if (result != FR_OK)
- {
- printf("挂载文件系统失败 (%s)\r\n", FR_Table[result]);
- }
- /* 打开根文件夹 */
- result = f_opendir(&DirInf, "2:"); /* 如果不带参数,则从当前目录开始 */
- 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);
- }
- /* 打印文件大小, 最大4G */
- printf(" %10d", FileInf.fsize);
- printf(" %s |", FileInf.fname); /* 短文件名 */
- printf(" %s\r\n", (char *)FileInf.lfname); /* 长文件名 */
- }
- /* 卸载文件系统 */
- f_mount(NULL, "2:", 0);
- }
复制代码 |
|