C ++搜索目录和文件

时间:2011-11-02 12:45:40

标签: c++ file directory

有人能告诉我是否有一个用C ++构建的库可以用来获取文件和目录列表?我环顾四周,看到人们使用dirent.h,但我需要下载它(我想)。

由于

P.S。我看过fstream,但据我所知,这只是为了阅读和输出文件。

忘记注意。我不想下载任何东西,我只想知道是否有一个在C ++中建立的图书馆,我可以直接使用BAT。这是为了WINDOWS ASWELL

4 个答案:

答案 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 ++框架都有一些方法来列出目录和文件。与wxWidgetspoco一样,还有更多。

关于dirent.h。它是一个standard C Posix library,因此在Posix兼容系统上它应该是可用的。对于Windows,您还可以获取它here,其中包含有关如何使用它的说明。

编辑后:

在Windows上,您可以使用FindFirstFileexample 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;
			
	}
	
}