如果路径是可创建文件,如何使用 boost::filesystem 检查?

How to check with boost::filesystem if a path is a creatable file?

我想检查用户提供的 boost::filesystem::path 是否真的是一个可创建的文件。 Createable表示:文件名前面的目录存在。

std::string input = ~/some/dir/file.xyz

boost::filesystem::path path(input);

if (~/some/dir is a directory) // <-- How to get this?
  return true;

boost::filesystem 的解决方案是什么?或者也许有更好的工具?

首先, has added filesystem to the standard. So, yeah you should use that. Prior to I'd still go with something like: experimental/filesystem


定义 filesystem::path path 后,您可以使用 parent_path 其中:

Returns the path to the parent directory

您可以在 filesystem::exists 中使用此 path,其中:

Checks if the given file status or path corresponds to an existing file or directory

因此,您的 if 语句中的条件应如下所示:

filesystem::exists(path.parent_path())