我正在用c ++编写一个可以通过android / ios / win移动应用程序访问的库,我必须使用c ++删除一个文件夹及其所有内容。我目前正在研究c ++ 11标准。 在这方面的帮助表示赞赏。
答案 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标准。因此,您需要为每个不同的平台单独实现代码。如何在每个平台中实现删除超出了我的答案范围,但它将在各自的文档中进行描述。对于该站点上的每个平台,可能已经存在一个现有问题。