ファイルの作成失敗を防ぐには、C++ 言語ではどのようにすべきでしょうか?

C++では、次のような方法でファイル作成の失敗を防ぐことができる

  1. std::filesystem::exists
#include <filesystem>

std::filesystem::path filePath("file.txt");

if (std::filesystem::exists(filePath)) {
    std::cout << "File already exists!" << std::endl;
    // 可以选择执行其他操作或者放弃创建文件
}
  1. 書き込み可能
#include <filesystem>

std::filesystem::path filePath("file.txt");
std::filesystem::path parentPath = filePath.parent_path();

if (!std::filesystem::is_writable(parentPath)) {
    std::cout << "Directory is not writable!" << std::endl;
    // 可以选择执行其他操作或者放弃创建文件
}
  1. ファイルシステム領域
#include <filesystem>

std::filesystem::path filePath("file.txt");
std::filesystem::space_info diskSpace = std::filesystem::space(filePath.root_path());

if (diskSpace.available < fileSize) {
    std::cout << "Not enough disk space!" << std::endl;
    // 可以选择执行其他操作或者放弃创建文件
}

注意:上記の方法ではC++17以上のバージョンのみが使用できます。古いC++標準を使用している場合は、関連するオペレーティングシステム関数の使用を検討して、同様の機能を実現できます。

bannerAds