f_mkdir,f_unlink,f_rename
(1) f_mkdir 创建一个目录
FRESULT f_mkdir ( const XCHAR* DirName );
参数:
DirName'\0'结尾的字符串指针,该字符串指定了待创建的目录名。
返回值:
FR_OK (0) 函数成功。
FR_NO_PATH 找不到路径。
FR_INVALID_NAME 路径名无效。
FR_INVALID_DRIVE 驱动器号无效。
FR_DENIED 由于目录表或磁盘满,而导致目录不能被创建。
FR_EXIST 已经存在同名的文件或目录。
FR_NOT_READY 由于驱动器中没有存储介质或任何其他原因,而导致磁盘驱动器无法工作。
FR_WRITE_PROTECTED 存储介质被写保护。
FR_DISK_ERR 由于底层磁盘 I/O函数中的错误,而导致该函数失败。
FR_INT_ERR 由于一个错误的 FAT 结构或一个内部错误,而导致该函数失败。
FR_NOT_ENABLED 逻辑驱动器没有工作区。
FR_NO_FILESYSTEM 磁盘上没有有效的 FAT 卷。
举例:
res = f_mkdir("0:fd1"); res = f_mkdir("0:fd1/fd2"); res = f_mkdir("0:fd1/fd2/fd3"); //目录要一层一层的建
(2) f_unlink 删除文件或者文件夹
FRESULT f_unlink ( const XCHAR* FileName );
参数:
FileName'\0'结尾的字符串指针,该字符串指定了一个待移除的对象。
删除文件夹不能为当前文件夹,不能为非空文件夹。
删除文件不能为打开文件,不能为只读文件
返回值:
FR_OK (0) 函数成功。
FR_NO_FILE 找不到文件或目录。
FR_NO_PATH 找不到路径。
FR_INVALID_NAME 路径名无效。
FR_INVALID_DRIVE 驱动器号无效。
FR_DENIED 由于下列原因之一,而导致该函数被拒绝:
对象具有只读属性
目录不是空的
FR_NOT_READY 由于驱动器中没有存储介质或任何其他原因,而导致磁盘驱动器无法工作。
FR_WRITE_PROTECTED 存储介质被写保护。
FR_DISK_ERR 由于底层磁盘 I/O函数中的错误,而导致该函数失败。
FR_INT_ERR 由于一个错误的 FAT 结构或一个内部错误,而导致该函数失败。
FR_NOT_ENABLED 逻辑驱动器没有工作区。
FR_NO_FILESYSTEM 磁盘上没有有效的 FAT 卷。
举例:
f_unlink("0:1/2/3/temp.txt"); //删除“temp.txt” f_unlink("0:1/2/3"); //删除文件夹“3”,删除文件夹前,要先删除内部的所有文件 f_unlink("0:1/2"); //删除文件夹“2” f_unlink("0:1"); //文件夹要一层一层删除
(3) f_rename 重命名或移动文件或文件夹
FRESULT f_rename ( const XCHAR* OldName, const XCHAR* NewName );
参数:
OldName'\0'结尾的字符串的指针,该字符串指定了待被重命名的原对象名。
NewName'\0'结尾的字符串的指针,该字符串指定了重命名或移动后的新对象名,不能包含驱动器号。逻辑驱动器号由原名决定。
返回值:
FR_OK (0) 函数成功。
FR_NO_FILE 找不到原名。
FR_NO_PATH 找不到路径。
FR_INVALID_NAME 文件名无效。
FR_INVALID_DRIVE 驱动器号无效。
FR_NOT_READY 由于驱动器中没有存储介质或任何其他原因,而导致磁盘驱动器无法工作。
FR_EXIST 新名和一个已存在的对象名冲突。
FR_DENIED 由于任何原因,而导致新名不能被创建。
FR_WRITE_PROTECTED 存储介质被写保护。
FR_DISK_ERR 由于底层磁盘 I/O函数中的错误,而导致该函数失败。
FR_INT_ERR 由于一个错误的 FAT 结构或一个内部错误,而导致该函数失败。
FR_NOT_ENABLED 逻辑驱动器没有工作区。
FR_NO_FILESYSTEM 磁盘上没有有效的 FAT 卷。
举例:
f_rename("0:1/t1.txt","1/t2.txt"); //将t1.txt重命名为t2.txt f_rename("0:1/t1.txt","2/t2.txt"); //将文件夹1里的t1.txt,移动到文件夹2中,并重新命名为t2.txt f_rename("0:2","3"); //将文件夹2重新命名为3,如果此文件夹里有文件或者子文件夹,仍然可以执行 f_rename("0:1/t","2/tt"); //将文件夹t从文件夹1中移动到文件夹2中,并重新命名为tt。如果原来的文件夹t中有文件或子文件夹,仍可以执行。