有人能告诉我是否有一个用C ++构建的库可以用来获取文件和目录列表?我环顾四周,看到人们使用dirent.h,但我需要下载它(我想)。
由于
P.S。我看过fstream,但据我所知,这只是为了阅读和输出文件。
忘记注意。我不想下载任何东西,我只想知道是否有一个在C ++中建立的图书馆,我可以直接使用BAT。这是为了WINDOWS ASWELL
答案 0 :(得分:3)
Boost::Filesystem怎么样?支持directory iteration并且可移植。
答案 1 :(得分:2)
您可以使用Boost Filesystem
库。
http://www.boost.org/doc/libs/1_31_0/libs/filesystem/doc/index.htm
链接也提供了一些不错的样本。
编辑:
如果没有下载第三方库,就没有可移植的方法。对于Windows,您可以使用MFC中的CFileFind类。
答案 2 :(得分:1)
由于其他人已经提到boost::filesystem,还有其他选择。几乎每个C ++框架都有一些方法来列出目录和文件。与wxWidgets或poco一样,还有更多。
关于dirent.h
。它是一个standard C Posix library,因此在Posix兼容系统上它应该是可用的。对于Windows,您还可以获取它here,其中包含有关如何使用它的说明。
编辑后:
在Windows上,您可以使用FindFirstFile(example here)等内容,然后您无需下载任何内容。但它只适用于Windows。它不是用C ++构建的。
答案 3 :(得分:1)
在 #include 中的 Visual Studio 2017 中提供了使用命名空间std :: filesystem 的功能。
#include <iostream>
#include <iostream>
#include <fstream>
#include <filesystem>
#include <chrono>
#include <thread>
#include <functional>
namespace fs = std::filesystem;
void Files_in_Directory();
fs::path path_Copy_Directory = "E:\Folder";
fs::path path_Paste_Directory = "E:\Folder1";
int main()
{
Files_in_Directory()
return 0;
}
void Files_in_Directory()
{
for (const auto & entry : fs::directory_iterator(path_Copy_Directory))
{
std::cout << entry.path() << std::endl;
}
}