【发布时间】:2015-08-14 06:17:46
【问题描述】:
如果涉及通配符,我正在使用此功能删除文件 我在 c++ builder 6 中创建了一个应用程序,它使用命令读取文件 然后执行它们,问题是当我放置不同的目录时,函数会使用命令读取并删除文件 例子 该文件是 hola.txt
当我执行 ofstream("hola2.txt") 或 ofstream ("C:\path\hola3.txt") 时,删除时效果很好 我使用 remove("hola.txt") 它可以工作,但我不能使用通配符 如果我执行 WildDeleteFiles("*.txt") 它会删除应用程序文件夹中的每个 txt 文件 但是当我这样做时 WildDeleteFiles("C:\path*.txt") 不会删除该目录中的 txt 文件,而是仅使用命令擦除 txt 文件 这是函数
void WildDeleteFiles(const char* direcc)
{
WIN32_FIND_DATA fd;
HANDLE hFind;
hFind = FindFirstFile(direcc, &fd);
if (hFind == INVALID_HANDLE_VALUE)
{
ShowMessage("No files found!");
}
else
{
do
{
DeleteFile(fd.cFileName);
}
while (FindNextFile(hFind, &fd));
ShowMessage("Files deleted!");
cmpi++;
rfi = 1;
}
}
这就是以后的称呼:
void __fastcall TForm1::Image4Click(TObject *Sender)
{
WildDeleteFiles(TStrings1->Cells[1][0].c_str());
}
我做错了什么?
【问题讨论】:
-
WTH 是 "c++ builder 6" 好吗??
-
查看duckduckgo.com/?q=c%2B%2B+builder+6,@πάνταῥεῖ。
-
fd结构只保存文件名(无路径),需要添加路径信息才能正确删除文件。
-
这不是 WhatsApp。请务必使用正确的标点符号。
-
您没有像预期的那样致电
FindClose。所以你有泄漏。
标签: c++ winapi c++builder