1 FRESULT f_chdir ( 2 const TCHAR *path /* Pointer to the directory path */ 3 ) 4 { 5 FRESULT res; 6 DIR dj; 7 DEF_NAMEBUF; 8 9 10 res = chk_mounted(&path, &dj.fs, 0); 11 if (res == FR_OK) { 12 INIT_BUF(dj); 13 res = follow_path(&dj, path); /* Follow the path */ 14 FREE_BUF(); 15 if (res == FR_OK) { /* Follow completed */ 16 if (!dj.dir) { 17 dj.fs->cdir = dj.sclust; /* Start directory itself */ 18 } else { 19 if (dj.dir[DIR_Attr] & AM_DIR) /* Reached to the directory */ 20 dj.fs->cdir = LD_CLUST(dj.dir); 21 else 22 res = FR_NO_PATH; /* Reached but a file */ 23 } 24 } 25 if (res == FR_NO_FILE) res = FR_NO_PATH; 26 } 27 28 LEAVE_FF(dj.fs, res); 29 }
函数功能:f_chdir函数改变一个驱动器的当前目录。
描述:
f_chdir函数当_FS_RPATH == 1时可用。
f_chdir函数改变一个逻辑驱动器的当前目录。当一个逻辑驱动器被自动挂载时,它的当前目录被初始化为根目录。注意:当前目录被保存在每个文件系统对象中,因此它也影响使用同一逻辑驱动器的其它任务。
f_chdrive:
1 FRESULT f_chdrive ( 2 BYTE drv /* Drive number */ 3 ) 4 { 5 if (drv >= _VOLUMES) return FR_INVALID_DRIVE; 6 7 CurrVol = drv; 8 9 return FR_OK; 10 }
函数功能:f_chdrive函数改变当前驱动器。
描述:
f_chdrive函数当_FS_RPATH == 1时可用。
f_chdrive函数改变当前驱动器。当前驱动器号初始值为0,注意:当前驱动器被保存为一个静态变量,因此它也影响使用文件函数的其它任务。
例:
1 // 改变当前驱动器的当前目录(根目录下的dir1) 2 f_chdir("/dir1"); 3 4 // 改变驱动器2的当前目录(父目录) 5 f_chdir("2:..");
PS:还是不知道有什么作用....
FATFS 初学之 f_chdir/ f_chdrive
时间: 2024-10-01 21:34:53