C++
Win32API
ファイル
存在
PathFileExists

C++におけるファイルの存在確認

More than 1 year has passed since last update.

ファイルの存在確認のコードをたまに使うので、覚書きを残しておきます。

Windows APIを使う方法

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

#pragma comment(lib, "Shlwapi.lib")

int main(int argc, char* argv[])
{
    char path[] = "";
    if (PathFileExists(path))
    {
        std::cout << "file exists." << std::endl;
    }
    else
    {
        std::cout << "file doesn't exist." << std::endl;
    }
    return 0;
}

標準ライブラリを使う方法

※ご指摘いただきましたので、追記します。

#include<string>
#include<fstream>
#include<iostream>

bool checkFileExistence(const std::string& str)
{
    std::ifstream ifs(str);
    return ifs.is_open();
}

参考文献

cppreference.com std::basic_ifstream::is_open