学习记录
FIL fp1; //创建一个文件结构体
DWORD Pfile;//当前的读写指针
DWORD FileSize;//当前文件的大小
FILINFO finfo; //文件信息
DIR dirs; //目录
FRESULT rese;
u32 num;
u8 t=0;
u8 i=0;
u8 Cbuf[20]="0123456789";
u8 C2buf[20]="abcdefghhk";
u8 Rbuf[30];
//创建文件夹
f_mkdir ("WSdir"); //创建一个目录
f_mkdir ("WSdir/file1"); // 在上层目下创建一个子目录
//写文件
f_open (&fp1, "WSdir/file1/recoder.txt", FA_OPEN_ALWAYS | FA_READ | FA_WRITE); //打开或者创建一个文件
f_write (&fp1, Cbuf, 10, &num); //往打开的文件里写内容
f_close (&fp1); //关闭文件
LCD_ShowString(30,290,200,16,16,"write ok num: ");
LCD_ShowNum(140,290,num,2,16); //显示写进去的个数
//读文件
f_open (&fp1, "WSdir/file1/recoder.txt", FA_OPEN_ALWAYS | FA_READ | FA_WRITE); //打开或者创建一个文件
f_read (&fp1, Rbuf , 10, &num); //读取文件
f_close (&fp1); //关闭文件
LCD_ShowString(30,320,200,16,16,"read ok num: ");
LCD_ShowNum(140,320,num,2,16); //显示读出来的个数
LCD_ShowString(30,350,200,16,16,Rbuf); //显示读出来的内容
//在文件尾添加内容
f_open (&fp1, "WSdir/file1/recoder.txt", FA_OPEN_ALWAYS | FA_READ | FA_WRITE); //打开或者创建一个文件
FileSize = f_size(&fp1); //获取当前文件的大小
f_lseek (&fp1, FileSize); //移动文件读写指针到文件尾
f_write (&fp1, C2buf, 10, &num); //往打开的文件里写内容
LCD_ShowString(30,400,200,16,16,"write2 ok num: ");
LCD_ShowNum(140,400,num,2,16); //显示写入个数
f_close (&fp1); //关闭文件
//读取某个目录下的文件和子目录
// f_readdir函数顺序读取目录项。目录中的所有项可以通过重复调用f_readdir函数被读取。
// 当所有目录项已被读取并且没有项要读取时,该函数没有任何错误地返回一个空字符串到
// f_name[]成员中。当FileInfo给定一个空指针时,目录对象的读索引将被回绕。
f_opendir(&dirs, "WSdir/file1");
while(1)
{
rese = f_readdir(&dirs, &finfo);
if (res != FR_OK || finfo.fname[0] == 0) break;
if(finfo.fattrib & AM_DIR) //显示文件夹名
{
LCD_ShowString(130,cnt,200,16,16,finfo.fname);
cnt+=20;
}
else //显示文件名
{
LCD_ShowString(30,cnt2,200,16,16,finfo.fname);
cnt2+=20;
}
}
一周热门 更多>