C:如何获取Windows目录中的文件列表?

我试图按照RFC959标准在C(学校作业)中实现一个FTP服务器。

我遇到了LIST命令的麻烦。 RFC读取:“这个命令导致一个列表被从服务器发送到被动的DTP,如果path名指定一个目录或其他文件组,服务器应该传送指定目录中的文件列表,如果path名指定一个文件,然后服务器应该发送文件的当前信息。一个空参数意味着用户的当前工作或默认目录。

我知道有像GetCurrentDirectory等function。是否有一个函数来获取输出如在MS-DOS命令提示符下的'dir'? 任何类似的事情都会有所帮助。

提前致谢!

Solutions Collecting From Web of "C:如何获取Windows目录中的文件列表?"

FindFirstFileFindNextFile是枚举路径的API。

Adrian Worley编写了一个教程,解释如何使用FindFirstFile和FindNextFile获取目录中的文件列表http://www.adrianxw.dk/SoftwareSite/FindFirstFile/FindFirstFile1.html

这是一个小例子。

 #include <windows.h> #include <iostream> using namespace std; int main() { HANDLE hFind; WIN32_FIND_DATA FindData; cout << "FindFirstFile/FindNextFile demo.\n" << endl; // Find the first file hFind = FindFirstFile("C:\\Windows\\*.exe", &FindData); cout << FindData.cFileName << endl; // Look for more while (FindNextFile(hFind, &FindData)) { cout << FindData.cFileName << endl; } // Close the file handle FindClose(hFind); return 0; }