如何从C ++文件夹中获取文件名

时间:2009-06-01 15:08:14

标签: c++ file

假设我想写ls或dir。如何获取给定目录中的文件列表? 相当于.NET的Directory.GetFiles和其他信息。

不确定字符串语法,但是:

string[] filePaths = Directory.GetFiles(@"c:\MyDir\");

5 个答案:

答案 0 :(得分:23)

查看boost::filesystem,这是一个便携而优秀的图书馆。

修改:来自图书馆的示例:

int main(int argc, char* argv[])
{
  std::string p(argc <= 1 ? "." : argv[1]);

  if (is_directory(p))
  {
     for (directory_iterator itr(p); itr!=directory_iterator(); ++itr)
     {
       cout << itr->path().filename() << ' '; // display filename only
       if (is_regular_file(itr->status())) cout << " [" << file_size(itr->path()) << ']';
       cout << '\n';
      }
  }
  else cout << (exists(p) : "Found: " : "Not found: ") << p << '\n';

  return 0;
}

答案 1 :(得分:4)

查看FindFirstFile和FindNextFile API

http://msdn.microsoft.com/en-us/library/aa364418.aspx

答案 2 :(得分:1)

在Windows中: FindFirstFileFindNextFileFindClose可用于列出指定目录中的文件。

伪代码:

 Find the first file in the directory.
 do
   { 
   //

   }while(NextFile);

Close

答案 3 :(得分:0)

Poco::DirectoryIterator是另一种选择

答案 4 :(得分:-3)

这完全取决于平台 如果在Windows上你应该按照建议使用WINAPI。