假设我想写ls或dir。如何获取给定目录中的文件列表? 相当于.NET的Directory.GetFiles和其他信息。
不确定字符串语法,但是:
string[] filePaths = Directory.GetFiles(@"c:\MyDir\");
答案 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
答案 2 :(得分:1)
在Windows中: FindFirstFile,FindNextFile和FindClose可用于列出指定目录中的文件。
伪代码:
Find the first file in the directory.
do
{
//
}while(NextFile);
Close
答案 3 :(得分:0)
Poco::DirectoryIterator是另一种选择
答案 4 :(得分:-3)
这完全取决于平台 如果在Windows上你应该按照建议使用WINAPI。