我想知道如何检查文件是否存在:
例如我有很多文件:
Boba.txt
James.txt
Jamy.txt
Boby.txt
如何检查以Bob开头的文件是否存在?
答案 0 :(得分:2)
注意,我假设您使用的是Windows系统并且文件位于同一目录中。
您可以使用FindFirstFile和FindNextFile函数遍历目录。前缀可以包含在搜索字词中。
示例强>
std::string strSearch = "C:\\Some Directory\\Bob*";
WIN32_FIND_DATAA ffd;
HANDLE hFind = FindFirstFileA(strSearch .c_str(), &ffd);
do
{
std::string strFile = ffd.cFileName;
}
while (FindNextFileA(hFind, &ffd) != 0);
正确的错误检查以及如何处理目录留给读者练习。
答案 1 :(得分:0)
假设您需要在C ++中执行此操作,boost::filesystem
库可能非常有用。在这种情况下,您的问题可以通过发布的here解决方案的变体来解决。在您的情况下,您不需要std::multimap
,但可以使用简单的std::string::find
。
答案 2 :(得分:0)
您可以使用fopen打开一个只读"r"
的文件。如果文件不存在,fopen将返回NULL指针。您可以为程序所需的任何文件执行此操作。
#include <cstdio>
int main ()
{
FILE **pFile;
pFile[0] = fopen ("Boba.txt","r");
pFile[1] = fopen ("Boby.txt","r");
if (pFile[0]!=NULL || pFile[1]!=NULL){
printf("File starting with \"bob\" exists.");
}
else printf("File does not exist.");
return 0;
}