新手入门
- 积分
- 4
- 金钱
- 4
- 注册时间
- 2019-5-11
- 在线时间
- 1 小时
|
1金钱
在遍历完目录下第一个文件后,path[i]是如何变成第二个文件路径的?
static FRESULT scan_files (char* path)
{
FRESULT res;
FILINFO fno;
DIR dir;
int i;
char *fn;
#if _USE_LFN
static char lfn[_MAX_LFN*2 + 1];
fno.lfname = lfn;
fno.lfsize = sizeof(lfn);
#endif
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;
#if _USE_LFN
fn = *fno.lfname ? fno.lfname : fno.fname;
#else
fn = fno.fname;
#endif
if (*fn == '.') continue;
if (fno.fattrib & AM_DIR)
{
sprintf(&path[i], "/%s", fn); //path[i]保存的是上级路径,可如果目录下第一个文件到底了,它是如何跳转到第二个文件遍历,Path[i]保存的路径怎么变得?
BURN_INFO("文件夹:%s",path);
res = scan_files(path);
path[i] = 0;
if (res != FR_OK)
break;
}
else
{
BURN_INFO("%s/%s", path, fn);
}
}
}
return res;
}
|
|