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判断文件或文件夹是否存在相关推荐

  1. 判断文件或文件夹(目录)是否存在 C/C++ win/linux通用

    一.windows下使用_access()或linux下使用access()函数 windows下使用_access()函数 所在头文件:<io.h> 函数原型:int _access(c ...

  2. Python判断两个文件夹中互相不同的文件有哪些、判断一个文件夹相对于另外一个文件夹缺少了哪些文件

    Python判断两个文件夹中互相不同的文件有哪些.判断一个文件夹相对于另外一个文件夹缺少了哪些文件 目录 Python判断两个文件夹中互相不同的文件有哪些.判断一个文件夹相对于另外一个文件夹缺少了哪些 ...

  3. linux c 判断文件打开文件,Linux 用C语言判断文件和文件夹

    Linux 用C语言判断文件和文件夹 #include #include #include #include int access(const char *pathname, int mode); i ...

  4. C#判断文件及文件夹是否存在并创建

    c# 应用知识汇集 2008-09-14 14:19:57 阅读564 评论0 字号:大中小 C#判断文件及文件夹是否存在并 创建 using System; using System.Data; u ...

  5. Python 技术篇-不使用os模块判断指定路径是文件还是文件夹,使用pathlib库判断文件和文件夹

    pathlib.Path("路径").is_file() 判断是否是文件,是文件的话返回 True. pathlib.Path("路径").is_dir() 判 ...

  6. Python 技术篇-用os库实现删除本地文件、非空文件夹方法,python判断本地文件、文件夹是否存在方法

    os.remove() 就是删除文件的 os.removedirs() 就是删除文件夹的 os.path.exists() 用来判断文件或文件夹是否存在 import ospath = "D ...

  7. python判断是不是文件夹_Python判断文件和文件夹是否存在的方法

    一.python判断文件和文件夹是否存在.创建文件夹 复制代码代码如下: >>> import os >>> os.path.exists("d:/ass ...

  8. python os.path.exists判断文件或文件夹是否存在

    import os#判断文件夹是否存在 dir = os.path.exists('C:\\Users\\Desktop') print('dir:', dir)#判断文件是否存在 file = os ...

  9. qdir 自动创建多级目录_Qt 判断文件或文件夹是否存在及创建文件夹

    1. 判断文件夹是不是存在 参数说明: QString fullPath;//文件夹全路径 /*方法1*/ bool isDirExist(QString fullPath) { QDir dir(f ...

最新文章

  1. 【Qt】一个使用QEventLoop时,遇到的教训
  2. master page頁面如何用js來做輸入驗證
  3. 利用python进行数据分析学习笔记 第7章(3)
  4. ASP.NET MVC 3 Razor基础语法
  5. 移除单链表的倒数第N个节点
  6. makemoney 秘密
  7. 8 旋转数组的最小数字
  8. cocoscreator连接MySQL_CocosCreator幼麟麻将搭建步骤
  9. 七牛切片视频php,音视频切片(HLS)
  10. OA考勤打卡系统功能点
  11. catia中的螺旋伞齿轮画法_聚焦:螺旋伞齿轮画法要领
  12. linux中MIB与MB单位的区别
  13. iot会议纪要 20180105
  14. 电影推荐之《哈利波特与阿兹卡班的囚徒》 隐私策略(Privacy policy)
  15. 深度学习(三) 卷积神经网络入门与实践
  16. algorithm2e笔记,记录一下常规操作
  17. 计算机毕业设计Java物流信息管理系统录像演示(源码+系统+mysql数据库+Lw文档)
  18. 项目实施、推广和运维之间的区别
  19. 定时轮播Echarts造成内存泄漏致使浏览器崩溃问题
  20. 无法将为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型

热门文章

  1. Leetcode-D21-动态规划(二刷)-55. 跳跃游戏45. 跳跃游戏 II
  2. 29 WebGL绘制立方体并为立方体每个表面指定颜色
  3. 全球与中国医疗计费软件市场深度研究分析报告
  4. 智能AI电话机器人系统
  5. Codeforces 115C Plumber
  6. Druid学习笔记(2)Druid架构剖析
  7. 直播带货后:提升售后服务、复盘直播数据
  8. 开发必备linux命令大全-稳赚不亏
  9. UIImage 的图片平铺实现效果
  10. 微信电脑版怎么修改信息提示音