rtthread的文件系统的f_mkdir_lfn
时间: 2023-08-13 09:06:34 浏览: 330
在RT-Thread的FatFS文件系统中,f_mkdir_lfn函数用于在文件系统中创建一个新的长文件名目录。长文件名(Long FileName,简称LFN)是指文件名长度大于8个字符的文件名。在FAT文件系统中,长文件名由多个目录项组成,每个目录项包含13个字符的文件名,因此长文件名目录的创建需要使用特定的API函数。
f_mkdir_lfn函数的函数原型如下:
```
FRESULT f_mkdir_lfn (const TCHAR* path);
```
其中,path参数表示要创建的目录路径,类型为TCHAR*。在FAT文件系统中,长文件名目录的路径和普通目录的路径格式是一样的,都是使用"/"作为分隔符。
调用f_mkdir_lfn函数时,如果创建成功,会返回FR_OK;如果创建失败,则会返回相应的错误码,例如FR_DISK_ERR表示磁盘错误,FR_DENIED表示权限不足等。需要注意的是,在创建目录时,需要确保上级目录已经存在,否则会创建失败。
下面是一个示例代码,演示如何在FatFS文件系统中创建一个新的长文件名目录:
```c
#include <dfs_fs.h>
#include <dfs_posix.h>
#include <dfs_file.h>
void test_mkdir_lfn(void)
{
FRESULT res;
DIR dir;
// 打开目录
res = f_opendir(&dir, "/longdir");
if (res == FR_OK)
{
// 目录已经存在,关闭目录
f_closedir(&dir);
return;
}
// 目录不存在,创建目录
res = f_mkdir_lfn("/longdir");
if (res != FR_OK)
{
// 创建目录失败
printf("Failed to create directory!\n");
}
else
{
// 创建目录成功
printf("Directory created!\n");
}
}
```
在上述代码中,我们使用f_opendir函数尝试打开目录“/longdir”,如果返回FR_OK则说明目录已经存在,直接返回;否则,使用f_mkdir_lfn函数创建长文件名目录“/longdir”,并根据返回值判断创建是否成功。
阅读全文
相关推荐

















