硬汉嵌入式论坛

 找回密码
 立即注册
查看: 7136|回复: 10
收起左侧

[FatFs] fatfs使用f_unlink无法正常删除时解决办法

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
发表于 2019-10-31 08:27:38 | 显示全部楼层 |阅读模式
有时候创建的文件使用f_unlink无法正常删除

此时的解决办法也比较简单,直接f_unmount卸载,然后重新调用函数f_mount加载,再调用f_unlink即可
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2020-10-19 16:06:01 | 显示全部楼层
硬汉哥。关于FatFs (版本10a)f_unlink删除文件遇到的一个问题想请教你一下。

我用STM32F103RCT6 + SPI FLASH 模拟一个U盘。在使用f_unlink删除一个文件时,每次删除后,电脑端U盘空间提示的可用空间都会减少,进入U盘查看文件也是成功删除了,现在不知道问题出在哪里,请指点一下,谢谢!

图片是文件删除执行前后可用空间大小的变化。
01.png
02.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2020-10-20 02:21:21 | 显示全部楼层
XinLau 发表于 2020-10-19 16:06
硬汉哥。关于FatFs (版本10a)f_unlink删除文件遇到的一个问题想请教你一下。

我用STM32F103RCT6 + SPI F ...

试试我的

基于V5板子的SPI Flash文件系统+SPI Flash虚拟U盘例子下载(2015-11-03新升级)
http://www.armbbs.cn/forum.php?m ... 4894&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2021-4-12 17:13:05 | 显示全部楼层
在吗你问题解决了吗

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2021-4-13 09:04:14 | 显示全部楼层
小飞侠2324 发表于 2021-4-12 17:13
在吗你问题解决了吗

我解决了,你遇到了什么问题,也是这个吗,函数返回值多少
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2022-12-28 09:58:33 | 显示全部楼层
我执行  f_unlink  这个函数, 程序就卡死了,不知道什么原因
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2022-12-28 16:22:37 | 显示全部楼层
fkueicfmtd 发表于 2022-12-28 09:58
我执行  f_unlink  这个函数, 程序就卡死了,不知道什么原因

先保证存储器里面确实有对应的文件(注意,如果是删除文件夹,这个文件夹要是空才可以删除),而且你的调用没问题。

如果还是有问题的话,可能程序驱动有点问题了。
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2023-5-13 10:39:56 | 显示全部楼层
fkueicfmtd 发表于 2022-12-28 09:58
我执行  f_unlink  这个函数, 程序就卡死了,不知道什么原因

你好!你的问题解决了吗?我也碰到着问题,名字也更改不了。
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2023-5-13 10:41:49 | 显示全部楼层
这个办法试过了,这两句都执行完了,也范围FR_OK,但是,执行f_unlink()删除文件时,就死机了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2023-5-13 10:49:20 | 显示全部楼层
yxb 发表于 2023-5-13 10:41
这个办法试过了,这两句都执行完了,也范围FR_OK,但是,执行f_unlink()删除文件时,就死机了。

把你的卡低级格式下再测试,还是不行的话,应该是i你的程序移植有点问题了。
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2023-5-13 22:05:50 | 显示全部楼层
eric2013 发表于 2023-5-13 10:49
把你的卡低级格式下再测试,还是不行的话,应该是i你的程序移植有点问题了。

您好!今天下午解决了。
需要删除的文件是从电脑拷贝到SD卡的,直接用f_unlink()不能删除那个文件,最后,我先打开后,再关闭了,然后再用f_unlink()删除了。
res_sd = f_open(&fnew, "0:SMQ_V004+.BIN",FA_OPEN_EXISTING);//FA_CREATE_ALWAYS | FA_WRITE );
                        if(res_sd==FR_OK)
                                res_sd= f_close(&fnew);
                        res_sd = f_unlink("0:SMQ_V004+.BIN");
                        if(res_sd==FR_OK)
                                printf("文件删除成功");
                        else
                                printf("文件删除失败:(%d)\n",res_sd);
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 09:24 , Processed in 0.319216 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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