OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3823|回复: 1

麻烦大家帮我看一下,这个删除文件夹及其子文件的程序有什么问题

[复制链接]

17

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
138
金钱
138
注册时间
2021-2-9
在线时间
36 小时
发表于 2021-7-19 14:53:27 | 显示全部楼层 |阅读模式
FRESULT filedir_delete(u8 *path)//删除路径下每一个文件
{
    u8 i, j;
    FRESULT res;
    DIR dir;
    FILINFO fno;
    u8 *path1;
#if _USE_LFN
    fno.lfname = 0; /* Set null pointer because LFN is not needed */
#endif
    res = f_opendir(&dir,(const TCHAR*)path);
    if (res == FR_OK)
    {
        for (i = 0; path[i]; i++)
        {
          path1[i]=path[i];
        }
        path1[i++] = '/';
        for (;;)
        {
            res = f_readdir(&dir, &fno);
            if (res != FR_OK || !fno.fname[0]) break;//错误了或到末尾了,退出
            if (fno.fname[0] == '.') continue;//忽略上级目录
            j = 0;
            do
            path1[i+j] = fno.fname[j];
            while (fno.fname[j++]);
            if (fno.fattrib & AM_DIR)//判断是否是文件夹
            {
                res = filedir_delete(path1);//该函数下还有非空文件夹
                if (res != FR_OK) break;
            }
           else
          {
                res = f_unlink((const TCHAR*)path1);
                if ((res != FR_OK) && (res != FR_DENIED)) break;
          }
     }
     path1[--i] = '\0';
  }
    return res;
}

用usmart组件调用这个函数就卡死

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

890

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1481
金钱
1481
注册时间
2020-8-19
在线时间
336 小时
发表于 2021-7-19 18:24:42 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-24 06:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表