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…

4 Solutions collect form web for “Microsoft Visual Studio:opendir()和readdir()如何?”

我会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函数来开始的。

  • 如何卸载“Microsoft广告SDK”Visual Studio扩展?
  • Visual Studio 2010插件 - 向解决scheme资源pipe理器添加一个上下文菜单
  • 使用Visual Studio删除文本中的空行
  • 有没有办法删除一行在Visual Studio中而不削减?
  • 在tfs中回滚一个变更集
  • 如何closures在Visual Studio IDE中显示空白字符
  • 禁用Visual Studio 2012编辑器中当前行的突出显示
  • Web部署任务失败。 无法连接...服务器没有响应
  • VS2005:程序集“<assembly>”被错误地指定为一个文件。
  • 如何从Visual Studio中重命名项目文件夹?
  • Visual Studio 2013和ASP.NET Webconfiguration工具