首页 > 代码库 > FATFS 初学之 f_chdir/ f_chdrive

FATFS 初学之 f_chdir/ f_chdrive

 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                 else22                     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 }
View Code

函数功能: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 }
View Code

函数功能:f_chdrive函数改变当前驱动器。

描述:

f_chdrive函数当_FS_RPATH == 1时可用。
f_chdrive函数改变当前驱动器。当前驱动器号初始值为0,注意:当前驱动器被保存为一个静态变量,因此它也影响使用文件函数的其它任务。

 

例:

1   // 改变当前驱动器的当前目录(根目录下的dir1)2     f_chdir("/dir1");3  4     // 改变驱动器2的当前目录(父目录)5     f_chdir("2:..");
View Code

 

PS:还是不知道有什么作用....