【发布时间】:2019-02-12 01:34:27
【问题描述】:
我想删除所有以子字符串开头的文件。
CString Formatter = _T("C:\\logs\\test\\test_12-12-2018_1*.*");
DeleteFile(Formatter);
我打算用上面的代码删除以下文件
C:\logs\test\test_12-12-2018_1_G1.txt
C:\logs\test\test_12-12-2018_1_G2.txt
C:\logs\test\test_12-12-2018_1_G3.txt
C:\logs\test\test_12-12-2018_1_G4.txt
当我从 GetLastError 检查错误时,我得到 ERROR_INVALID_NAME。
知道如何解决这个问题吗?
【问题讨论】:
-
DeleteFile函数不使用通配符。您必须自己 find 文件。 -
你可以做
system ("del C:\\logs\\test\\test_12-12-2018_1*.*"); -
@PaulSanders 一个非常丑陋的解决方案。
-
@Jabberwocky 为什么?
-
@PaulSanders 因为正确的方法是按照公认的答案建议的那样去做。如果我继续你的推理,为什么不使用
system("echo Hello world");而不是printf("Hello World");。