如果路径是可创建文件,如何使用 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
的解决方案是什么?或者也许有更好的工具?
首先,c++17 has added filesystem
to the standard. So, yeah you should use that. Prior to c++17 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())
我想检查用户提供的 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
的解决方案是什么?或者也许有更好的工具?
首先,c++17 has added filesystem
to the standard. So, yeah you should use that. Prior to c++17 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())