如何使用c ++删除文件夹及其内容?

时间:2017-05-17 10:39:02

标签: android c++ ios c++11

我正在用c ++编写一个可以通过android / ios / win移动应用程序访问的库,我必须使用c ++删除一个文件夹及其所有内容。我目前正在研究c ++ 11标准。 在这方面的帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

使用boost它可以为您的应用程序提供平台独立性。

如果您仍想坚持常规方式,Macros就是解决方案。 快速浏览下面的代码

#ifdef _WIN32 // note the underscore: without it, it's not msdn official!
// Windows (x64 and x86)
#elif __unix__ // all unices, not all compilers
// Unix
#elif __linux__
// linux
#elif __APPLE__
// Mac OS, not sure if this is covered by __posix__ and/or __unix__ 
though...
#endif

注意:虽然以上内容可能适用于基础知识,但请记住通过直接查看 Boost.Predef reference pages.来验证要检查的宏。

答案 1 :(得分:0)

C ++ 11没有与文件系统交互的API - 读取和写入文件除外。使用标准库无法以任何方式删除文件或与目录交互。

这将在C ++ 17中发生变化,它将引入<filesystem>标题。

在此之前,您必须依赖于特定于平台的API。每个平台都有自己的API用于文件系统访问 - 尽管有些API符合便携式POSIX标准。因此,您需要为每个不同的平台单独实现代码。如何在每个平台中实现删除超出了我的答案范围,但它将在各自的文档中进行描述。对于该站点上的每个平台,可能已经存在一个现有问题。