1 std::filesystem
C++17的std::filesystem提供了下列判断文件类型的函数:
- std::filesystem::is_block_file:判断文件路径是否引用块设备
-
std::filesystem::is_character_file:判断文件路径是否引用符设备
-
std::filesystem::is_directory:判断文件路径是否引用目录
-
std::filesystem::is_empty:判断文件路径是否是空文件或者目录
-
std::filesystem::is_fifo:判断文件路径是否引用命名管道
-
std::filesystem::is_other:判断文件路径是否引用其他文件
-
std::filesystem::is_regular_file:判断文件路径是否引用常规文件
-
std::filesystem::is_socket:判断文件路径是否引用socket套接字
-
std::filesystem::is_symlink:判断文件路径是否引用符号链接
使用示例代码
#include<iostream>
#include <filesystem>
void PrintFileType(const std::filesystem::path& path)
{
if (!std::filesystem::exists(path))
{
std::cout << path << " is not exist" << std::endl;
return;
}
if (std::filesystem::is_regular_file(path))
{
std::cout << path << " is a regular file" << std::endl;
}
else if (std::filesystem::is_directory(path))
{
std::cout << path << " is a directory" << std::endl;
}
else if (std::filesystem::is_block_file(path))
{
std::cout << path << " is a block device" << std::endl;
}
else if (std::filesystem::is_character_file(path))
{
std::cout << path << " is a character device" << std::endl;
}
else if (std::filesystem::is_fifo(path))
{
std::cout << path << " is a named IPC pipe" << std::endl;
}
else if (std::filesystem::is_socket(path))
{
std::cout << path << " is a named IPC socket" << std::endl;
}
else if (std::filesystem::is_symlink(path))
{
std::cout << path << " is a symlink" << std::endl;
}
}
int main()
{
std::string file_path = "E:\\example.txt";
std::filesystem::path temp_filesystem(file_path);
PrintFileType(temp_filesystem);
return 0;
}
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:C++ – std::filesystem判断文件类型
原文链接:https://www.stubbornhuang.com/2853/
发布于:2023年10月17日 13:55:33
修改于:2023年10月17日 13:55:33
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
52