filesystem判断文件或文件夹是否存在
class CFileSystem {
public:CFileSystem(CFileSystem&) = delete;CFileSystem(CFileSystem&&) = delete;CFileSystem(){}/// <summary>/// 判断文件或文件夹是否存在/// </summary>/// <param name="path">路径</param>/// <param name="is_directory">true:判断是否是文件夹,false:判断是否是文件</param>/// <returns>路径的文件或文件夹是否存在</returns>bool IsExist(const std::filesystem::path& path, bool is_directory)const {std::error_code error;auto file_status = std::filesystem::status(path, error);if (error) {return false;}if (!std::filesystem::exists(file_status)) {return false;}return std::filesystem::is_directory(file_status) && is_directory;}bool IsFileExist(const std::filesystem::path& path)const {return IsExist(path, false);}bool IsFileExist(const std::string_view& path)const {return IsFileExist(std::filesystem::path(path));}bool IsFileExist(const std::wstring_view& path)const {return IsFileExist(std::filesystem::path(path));}bool IsFileExist(const wchar_t* path)const {return IsFileExist(std::wstring_view(path));}bool IsFileExist(const char* path)const {return IsFileExist(std::string_view(path));}bool IsDirExist(const std::filesystem::path& path)const {return IsExist(path, true);}bool IsDirExist(const std::string_view& path)const {return IsDirExist(std::filesystem::path(path));}bool IsDirExist(const std::wstring_view& path)const {return IsDirExist(std::filesystem::path(path));}bool IsDirExist(const wchar_t* path)const {return IsDirExist(std::wstring_view(path));}bool IsDirExist(const char* path)const {return IsDirExist(std::string_view(path));}std::filesystem::path::string_type GetCurrentPath()const{using std::filesystem::current_path;return current_path().native();}void Emun(const std::filesystem::path& path,bool EnumChild,std::function<bool(const std::filesystem::path&)> callback)const{using std::filesystem::directory_iterator;for (auto& p : directory_iterator(path)) {if (!callback(p.path()))break;if (EnumChild && IsExist(p.path(),true)){Emun(p.path(), EnumChild, callback);}}}
};bool PrintDir(const std::filesystem::path& path)
{std::cout << path<<std::endl;return true;
}int main()
{CFileSystem filesystem;std::cout << "-----------------------------filesystem test---------------------------------------" << std::endl;std::cout << "" << std::endl;std::cout << "-----------------------------GetCurrentPath---------------------------------------" << std::endl;std::wcout << filesystem.GetCurrentPath()<<std::endl;std::cout << "-------------------------------Emun------------------------------------------------" << std::endl;filesystem.Emun(filesystem.GetCurrentPath(),true, std::bind_front(PrintDir));std::cout << "------------------------------------------------------------------------------------" << std::endl;filesystem.Emun(filesystem.GetCurrentPath(), false, std::bind_front(PrintDir));std::cout << "--------------------------------IsDirExist-----------------------------------------------" << std::endl;std::cout <<std::boolalpha << filesystem.IsDirExist(LR"(.)") << std::endl;std::cout << std::boolalpha << filesystem.IsDirExist(".") << std::endl;std::cout << "--------------------------------IsFileExist-----------------------------------------------" << std::endl;std::cout << std::boolalpha << filesystem.IsFileExist(LR"(.)") << std::endl;std::cout << std::boolalpha << filesystem.IsFileExist(".") << std::endl;std::cout << std::boolalpha << filesystem.IsFileExist(LR"(.\CFileSystem.exe)") << std::endl;std::cout << std::boolalpha << filesystem.IsFileExist(R"(..\Debug\CFileSystem.exe)") << std::endl;}
filesystem判断文件或文件夹是否存在相关推荐
- 判断文件或文件夹(目录)是否存在 C/C++ win/linux通用
一.windows下使用_access()或linux下使用access()函数 windows下使用_access()函数 所在头文件:<io.h> 函数原型:int _access(c ...
- Python判断两个文件夹中互相不同的文件有哪些、判断一个文件夹相对于另外一个文件夹缺少了哪些文件
Python判断两个文件夹中互相不同的文件有哪些.判断一个文件夹相对于另外一个文件夹缺少了哪些文件 目录 Python判断两个文件夹中互相不同的文件有哪些.判断一个文件夹相对于另外一个文件夹缺少了哪些 ...
- linux c 判断文件打开文件,Linux 用C语言判断文件和文件夹
Linux 用C语言判断文件和文件夹 #include #include #include #include int access(const char *pathname, int mode); i ...
- C#判断文件及文件夹是否存在并创建
c# 应用知识汇集 2008-09-14 14:19:57 阅读564 评论0 字号:大中小 C#判断文件及文件夹是否存在并 创建 using System; using System.Data; u ...
- Python 技术篇-不使用os模块判断指定路径是文件还是文件夹,使用pathlib库判断文件和文件夹
pathlib.Path("路径").is_file() 判断是否是文件,是文件的话返回 True. pathlib.Path("路径").is_dir() 判 ...
- Python 技术篇-用os库实现删除本地文件、非空文件夹方法,python判断本地文件、文件夹是否存在方法
os.remove() 就是删除文件的 os.removedirs() 就是删除文件夹的 os.path.exists() 用来判断文件或文件夹是否存在 import ospath = "D ...
- python判断是不是文件夹_Python判断文件和文件夹是否存在的方法
一.python判断文件和文件夹是否存在.创建文件夹 复制代码代码如下: >>> import os >>> os.path.exists("d:/ass ...
- python os.path.exists判断文件或文件夹是否存在
import os#判断文件夹是否存在 dir = os.path.exists('C:\\Users\\Desktop') print('dir:', dir)#判断文件是否存在 file = os ...
- qdir 自动创建多级目录_Qt 判断文件或文件夹是否存在及创建文件夹
1. 判断文件夹是不是存在 参数说明: QString fullPath;//文件夹全路径 /*方法1*/ bool isDirExist(QString fullPath) { QDir dir(f ...
最新文章
- 【Qt】一个使用QEventLoop时,遇到的教训
- master page頁面如何用js來做輸入驗證
- 利用python进行数据分析学习笔记 第7章(3)
- ASP.NET MVC 3 Razor基础语法
- 移除单链表的倒数第N个节点
- makemoney 秘密
- 8 旋转数组的最小数字
- cocoscreator连接MySQL_CocosCreator幼麟麻将搭建步骤
- 七牛切片视频php,音视频切片(HLS)
- OA考勤打卡系统功能点
- catia中的螺旋伞齿轮画法_聚焦:螺旋伞齿轮画法要领
- linux中MIB与MB单位的区别
- iot会议纪要 20180105
- 电影推荐之《哈利波特与阿兹卡班的囚徒》 隐私策略(Privacy policy)
- 深度学习(三) 卷积神经网络入门与实践
- algorithm2e笔记,记录一下常规操作
- 计算机毕业设计Java物流信息管理系统录像演示(源码+系统+mysql数据库+Lw文档)
- 项目实施、推广和运维之间的区别
- 定时轮播Echarts造成内存泄漏致使浏览器崩溃问题
- 无法将为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型