我知道删除文件夹必须枚举到子目录所有内容 然后逐个删除 但是我都枚举到了 删除TXT时候 一个文件夹底下两个TXT 只删除了一个TXT 怎么回事呢
两个TXT删除了一个 8个TXT删除了4个 这是删除一半?
删除文件夹得话,必须先删除文件夹下的文件。然后再删除文件夹。
/12ABX/14-03-25/12-56.TXT 1) /12ABX/14-03-25/09-08.TXT 2) /12ABX/14-04-11/15-15.TXT /12ABX/14-04-11/14-00.TXT /12ABX/14-04-17/08-44.TXT /12ABX/14-04-17/08-43.TXT
这是串口打印的 我都枚举到了 现在我是要先把TXT全删了 再删文件夹 比如 1)2)是同一个文件夹下的TXT 但是只能删除1) CH374FileErase(); /* 删除文件并关闭 */ 这个函数删完后关闭是什么意思 是不就跳出这个文件夹了
你的问题可能与你的U盘有关系,你的U盘存在写延时问题。你可以换一个U盘或者删除第二个文件之后再随便打开一个文件。 删除后关闭是指结束一个操作,你要再删除需要先打开文件然后再删除。
pCodeStr ="/*"; for (i = 0; i < 200; i++ ) { s = ch374_FindFile(pCodeStr, i, strFileName); if (s == ERR_MISS_FILE ) { break; } if (s == ERR_FOUND_NAME ) { s=ch374_DeleteFile(strFileName_2); StopIfError(s); } } /***********************************/ uint8_t ch374_DeleteFile(char *_pFileName) { strcpy((char *)mCmdParam.Open.mPathName, _pFileName); return CH374FileErase(); /* 删除文件并关闭 */ } U盘根目录下两个TXT文件 只能删除一个 怎么解决呢
你的问题很可能是第4楼的问题,跟U盘有关系,删除两个的话只能删除一个,删除三个的话只能删除两个,应该是最后一个删除有问题。建议换一个U盘或者在最后一步操作之后再进行其他操作。
for (i = 0; i < 200; i++ ) { s = ch374_FindFile(&pCodeStr[0], i, strFileName); if (s == ERR_MISS_FILE ) { s=ch374_DeleteFile(abc1); StopIfError(s); s=ch374_DeleteFile(abc2); StopIfError(s); s=ch374_DeleteFile(abc3); StopIfError(s); break; } if (s == ERR_FOUND_NAME ) { if(i==0)strcpy(abc1,strFileName); else if(i==1)strcpy(abc2,strFileName); else if(i==2)strcpy(abc3,strFileName); } 上面这段程序可以把3个都删除 就是枚举一个删除一个不可以 必须都枚举完 再一起删除 但是有个问题 strFileNameme每次都会被覆盖 必须重新赋值个变量 但是文件多的话 变量占很大内存啊