找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 9650|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

FATFS文件系統(tǒng)中,刪除文件夾!分享一個(gè)函數(shù) FS_DeleteIntFile(TCHAR* path)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
#
ID:282249 發(fā)表于 2018-2-5 08:55 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
看了好多朋友用那個(gè)f_unlink()函數(shù)沒法刪除還有內(nèi)容的文件夾,今天在網(wǎng)上找到一個(gè)不錯(cuò)的函數(shù),所以拿來(lái)跟大家分享一下~廢話不多說直接上函數(shù)的代碼:

/* 刪除文件夾內(nèi)所有的文件和文件夾*/
FRESULT FS_DeleteIntFile(TCHAR* path)
{
UINT i, j;
FRESULT res;
DIR dir;
FILINFO fno;
#if _USE_LFN
fno.lfname = 0; /* Set null pointer because LFN is not needed */
#endif
res = f_opendir(&dir, path);
if (res == FR_OK)
{
for (i = 0; path[ i]; i++) ;
path[i++]='/';
for (;;)
{
res = f_readdir(&dir, &fno);
if (res != FR_OK || !fno.fname[0]) break;
if (fno.fname[0] == '.') continue;
j = 0;
do
path[i+j] = fno.fname[j];
while (fno.fname[j++]);
if (fno.fattrib & AM_DIR)
{
res = FS_DeleteIntFile(path);
if (res != FR_OK) break;
}
res = f_unlink(path);
if ((res != FR_OK) && (res != FR_DENIED)) break;
}
path[--i] = '\0';
}
return res;
}


/* 刪除此文件夾及內(nèi)部的文件及文件夾*/
FRESULT FS_DeleteFolderOrFile(TCHAR* path)
{
FRESULT res;

res = FS_DeleteIntFile(path);
if (res == FR_OK)
{
res = f_unlink(path);
}
else if (FR_NO_PATH == res)
{
res = f_unlink(path);
}
return res;
}
首先把這兩個(gè)函數(shù)的定義放在ff.c當(dāng)中,別忘了在ff.h中聲明一下。然后直接調(diào)用就行啦
至于怎么用,不用我說了吧~

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

板凳
ID:474093 發(fā)表于 2021-1-28 20:31 | 只看該作者
老兄這個(gè)程序我這編譯報(bào)錯(cuò)呢  _USE_LFN   fno.lfname  怎么定義的呢
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:474093 發(fā)表于 2021-1-28 20:30 | 只看該作者
老兄麻煩問下這個(gè)程序我編譯報(bào)錯(cuò)呢? _USE_LFN   fno.lfname  怎么定義的呢
回復(fù)

使用道具 舉報(bào)

樓主
ID:416203 發(fā)表于 2019-10-19 11:32 | 只看該作者
好東西啊
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表