说到这里,让我指出你的问题中的一些问题。你说你想要最快的方法,而且你有成千上万的文件,但是你要求一个函数的代码来测试一个单一的文件(这个函数只在c++中有效,而不是在C中)。一箱XY问题。你也可以说“in standard c++11(or)c++(or)c”…这些都是不同的,这也与你对速度的要求不一致……最快的解决方案是根据目标系统定制代码。问题中不一致的地方是,你接受的答案给出的解决方案是依赖于系统的,而不是标准C或c++。
inline bool exist(const std::string& name)
{
ifstream file(name);
if(!file) // If the file was not found, then file is 0, i.e. !file=1 or true.
return false; // The file was not found.
else // If the file was found, then file is non-0.
return true; // The file was found.
}
#include <iostream>
#include <fstream>
using namespace std;
void main(){
SearchFile("test.txt");
}
bool SearchFile(const char *file)
{
ifstream infile(file);
if (!infile.good())
{
// If file is not there
exit(1);
}
}