FATFS函数浅谈 看完学会FATSFS,建议收藏( 二 )


FATFS函数浅谈 看完学会FATSFS,建议收藏

文章插图
1. 此函数功能兼容 ,它于的区别就是执行后,当前文件是否仍然有效.
2. 参数说明:
a) * : 指向文件对象结构体的指针
3. 调用此函数后,当前文件仍然可读可写可查询.
4. 当文件处于长时间的写模式,如数据记录时,定期调用此函数,或在写入数据后立即调用
此函数,可以减少因断电等意外情况带来的损失.有点 WORD 中后台定期保存的意思
十、新建文件夹
FRESULT f_mkdir (const TCHAR*DirName /* Pointer to the directory name */);
函数说明:
1. 新建一个文件夹
2. 参数说明:
a) * : 指向将要创建的文件夹名的指针
3. 文件名应符合 fatfs 标准,不能包含非法字符,
4. 若不支持长文件名,文件名长度不能大于 8,否则新建不成功
5. 例程:
a) f_mkdir("new");b) f_mkdir("folder/new");
十一、删除文件或文件夹
FRESULT f_unlink (const TCHAR*FileName /* Pointer to the object name */);
函数说明:
1. 此函数可以删除一个文件或文件夹
2. 参数说明:
a) * : 指向文件或文件夹的名称的指针
3. 删除文件夹时:
a) 不能为当前文件夹
b) 不能为非空文件夹
4. 删除文件时
a) 不能为已打开文件
b) 不能为只读文件
十二、重命名\移动文件或文件夹
FRESULT f_rename (const TCHAR*OldName, /* Pointer to old object name */const TCHAR*NewName /* Pointer to new object name */);
函数说明:
1. 此函数可以移动或重命名一个文件或文件夹
2. 参数说明:
a) * : 指向旧文件名的指针
b) * : 指向新文件名的指针
3. 此函数可重命名 文件 或 文件夹 ,而不论文件夹是否为空
4. 此函数可移动 文件 或 文件夹 ,而不论文件夹是否为空
例程:
res = f_rename("folder/old.txt","folder/newname.txt"); //重命名 文件,res = f_rename("folder/123.txt","new/456.txt"); //将文件夹 folder 中的 123.txt 文件,移动到文件夹 new 中并重命名为 456.txt
十三、获取文件信息
FRESULT f_stat (const TCHAR*FileName, /* Pointer to the file or directory name */FILINFO*FileInfo /* Pointer to the FILINFO structure */);
函数说明:
1. 此函数可以获取文件的最近修改时间,属性等信息,获取的信息存在结构体中
2. 参数说明:
a) *: 指向文件名的指针
b) *: 指向保存文件信息的结构体的指针
3. 如果目标是文件夹,获取的大小为 0.
4. 此函数对根目录无效
5. 时间和日期均为两个字节,存储格式如下
a) 日期:
i. bit15...bit9: 年 减去 1980
ii. bit8 ... bit5: 月
iii. bit4 ... bit0: 日
b) 时间:
i. bit15... bit11 : 时
ii. bit10... bit5 : 分
iii. bit4 ... bit0 : 秒 除以 2
c) 如
i. 日期:00001,表示 1981 年 1 月 1 日
ii. 时间:00001,表示 1 点 1 分 2 秒
例:
res = f_stat("folder/newname.txt", &finfo); //读取 folder 目录下 newname.txt 文件的信息if( res )Debug("newname.txt err : %d\r\n", res);else{Debug("newname.txt size : %lu\r\n",finfo.fsize);Debug("fdate : %d\r\n",finfo.fdate);Debug("ftime : %d\r\n",finfo.ftime);Debug("fattrib : %d\r\n",finfo.fattrib);}
串口输出结果:
结果分析: