Microsoft Visual Studio:opendir()和readdir()如何?

我以前在Dev-cpp中使用过这种代码:

if((dh = opendir(folder)) !== false){ while((file = readdir(dh)) !== false){ // do my stuff } closedir(dh); } 

但现在我正在使用MSVC ++,我不知道如何添加这些文件,我试图在那里复制dirent.h / dir.h / errno.h,但它给出了另一个与这些文件中包含的文件有关的错误.. 。通过查看文件,我看到那里的东西,所以它的编译器相关的东西? idk什么编译器MSVC ++使用,但是有可能在MSVC ++中复制这些文件,并得到它的工作?

我试图从MSDN查找一些代码,但它真的搞砸了,所以即时通讯希望我可以使用上面的这些function…

我会build议使用FindFirstFile()和FindNextFile() 。

这是MSDN的例子 ,它正是你想要的。

如果您需要快速删除replace内容,则还可以使用:

http://www.two-sdg.demon.co.uk/curbralan/code/dirent/dirent.html

我发现简单的类使用的是Win32的POSIX API

太好了,毕竟我不得不使用do-while循环:

 HANDLE hFind; WIN32_FIND_DATA FindFileData; if((hFind = FindFirstFile("C:/some/folder/*.txt", &FindFileData)) != INVALID_HANDLE_VALUE){ do{ printf("%s\n", FindFileData.cFileName); }while(FindNextFile(hFind, &FindFileData)); FindClose(hFind); } 

这真的是更好,因为我可以使用“* .txt”等,使得更容易find一些特定的文件types,早些时候我必须编写自己的匹配函数:D

这个问题的答案很大程度上取决于你正在编译的目标平台。

MSVC ++是一个编译器,所以我想猜测你正在试图在Windows平台上执行类似opendir()和readdir()的操作。 在这种情况下,请看下面的资源:

  • 枚举Visual C ++中的目录中的文件
  • Win32文件pipe理function

第二个链接是MSDN页面,其中列出了Windows平台API上用于与文件系统交互的所有function。 您会发现,Windows中的大多数文件操作都是通过调用CreateFile函数来开始的。