使用FATFS在SD卡内创建一个文件夹,在文件夹内在新建一个文本文件,新建文本文件时候出现失败

2019-07-20 21:50发布

大家好,使用FATFS在SD卡内创建一个文件夹,在文件夹内在新建一个文本文件,新建文本文件时候出现失败。程序如下:
传入的参数是SD卡根目录创建的文件夹名,程序能够新建文件夹和打开文件夹,到了新建文本文件的时候就失败,还请各位朋友指点下。

u8 Fatfs_Write(char *path)
{
        u8 res;
        DIR dirw;
        FIL *filea;
        char filname[60];
        res=f_mkdir(path);  //在一个盘内创建一个文件夹
        if(res!=FR_OK)  
        {
                LCD_ShowString(30,250,200,16,16,"Creat File Fail");
                return 1;
        }
        LCD_ShowString(30,250,200,16,16,"Creat File OK   ");
        res=f_opendir(&dirw,path);//打开文件夹
        if(res!=FR_OK)  
        {
                LCD_ShowString(30,270,200,16,16,"Open File Fail");
                return 2;
        }
        LCD_ShowString(30,270,200,16,16,"Open File OK    ");
        strcpy(filname,path);
        strcat(filname,"/rwfile.txt");
        res=f_open(filea,path,FA_CREATE_ALWAYS|FA_WRITE|FA_OPEN_ALWAYS); //在创建的文件夹内新建一个.txt文件
        if(res!=FR_OK)  
        {
                LCD_ShowString(30,290,200,16,16,"NEW File Fail");
                return 3;
        }
        LCD_ShowString(30,290,200,16,16,"NEW File OK   ");
        f_write(filea,text,strlen(text),&bw);
        f_close(filea);
        f_closedir(&dirw);
        return 0;
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
adlu
1楼-- · 2019-07-21 02:24
创建文件夹之后,不要f_opendir( )打开文件夹,直接f_open( )创建文件,试一下。
loyalboy1111
2楼-- · 2019-07-21 07:48
adlu 发表于 2016-6-6 11:57
创建文件夹之后,不要f_opendir( )打开文件夹,直接f_open( )创建文件,试一下。

不打开创建的文件夹怎么在里面新建文本文件呢?直接写目录名好像就没有什么意义了吧
adlu
3楼-- · 2019-07-21 13:48
loyalboy1111 发表于 2016-6-6 12:07
不打开创建的文件夹怎么在里面新建文本文件呢?直接写目录名好像就没有什么意义了吧

关键可能不是在此。
res=f_open(filea,path,FA_CREATE_ALWAYS|FA_WRITE|FA_OPEN_ALWAYS);
你看一下返回值是什么,代表的是什么错误。

FA_CREATE_ALWAYS,FA_OPEN_ALWAYS这两个同时用是不是有问题?我也不清楚。用其中之一就可以了吧
loyalboy1111
4楼-- · 2019-07-21 16:53
 精彩回答 2  元偷偷看……

一周热门 更多>