【发布时间】:2013-08-17 14:27:08
【问题描述】:
我正在从我的跨平台 c++ 代码访问一个目录。我知道这个目录有三个子目录,但是它们的名字是随机生成的。
我想要的是一个列表,其中包含这些目录(不是文件!)的名称作为 std::string 类型。 我非常希望避免使用诸如 boost 或 qt 之类的库,并尽可能使用标准 c++。
【问题讨论】:
-
C++ 中(目前)还没有处理目录和目录遍历的功能。要么使用 Boost 等跨平台库,要么编写您自己的类,使用每个平台的本机功能。
-
文件系统的东西是特定于平台的,如果不将程序与不可移植的东西接口,您就无法执行此类任务,boost::filesystem 让您在抽象平台的同时执行此任务,这是一个很大的优势.
-
如前所述,您需要特定于平台的代码来访问文件系统,因此对于您的应用程序支持的所有操作系统,您需要
#ifdefs,或者使用一些具有这些@987654322 的跨平台库@s 里面。这有几个库,cmet中提到的Qt和boost是其中的两个,你可以选择你想要的 -
有很多关于如何查找文件的问题,比如你提到的 Dariusz。不是文件夹。并且不允许使用库,这就是我不能使用 boost 的原因! :-(