检查C ++中是否存在文件

时间:2013-06-08 23:39:39

标签: c++ file file-exists

我对C ++非常陌生。 在我目前的项目中,我已经包含了

#include <iostream>
#include <Windows.h>
#include <TlHelp32.h>

我只需要在main()的最开头快速检查一下,看看我的程序目录中是否存在必需的dll。 那么对我来说最好的方法是什么呢?

2 个答案:

答案 0 :(得分:9)

因此,假设只需在同一目录中检查具有正确名称EXISTS的文件即可:

#include <fstream>

...

void check_if_dll_exists()
{
    std::ifstream dllfile(".\\myname.dll", std::ios::binary);
    if (!dllfile)
    {
         ... DLL doesn't exist... 
    }
}

如果您想知道它实际上是一个真正的DLL(而不是某人打开命令提示符并执行type NUL: > myname.dll来创建一个空文件),您可以使用:

HMODULE dll = LoadLibrary(".\\myname.dll");

if (!dll)
{
   ... dll doesn't exist or isn't a real dll.... 
}
else
{
   FreeLibrary(dll);
}

答案 1 :(得分:6)

有很多方法可以实现这一点,但使用boost库总是一个好方法。

#include <boost/filesystem.hpp>
using boost::filesystem;

if (!exists("lib.dll")) {
    std::cout << "dll does not exists." << std::endl;
}