C: Comment obtenir une liste de fichiers dans le répertoire Windows?

J’essaie d’implémenter un serveur FTP en C (affectation scolaire), conformément à la norme RFC959.

J’ai des problèmes avec la commande LIST. Le RFC lit: “Cette commande entraîne l’envoi d’une liste du serveur au DTP passif. Si le chemin d’access spécifie un répertoire ou un autre groupe de fichiers, le serveur doit transférer une liste de fichiers du répertoire spécifié. Si le chemin d’access spécifie un fichier, le serveur doit alors envoyer les informations actuelles sur le fichier. Un argument nul indique le répertoire de travail ou le répertoire par défaut de l’utilisateur. ”

Je sais qu’il existe des fonctions telles que GetCurrentDirectory, etc. Existe-t-il une fonction permettant d’obtenir une sortie telle que celle de ‘dir’ dans l’invite de commande MS-DOS? Tout ce qui serait similaire serait utile.

Merci d’avance!

FindFirstFile & FindNextFile sont les API permettant d’énumérer un chemin.

Adrian Worley a écrit un tutoriel expliquant comment obtenir une liste de fichiers dans un répertoire à l’aide de FindFirstFile et FindNextFile http://www.adrianxw.dk/SoftwareSite/FindFirstFile/FindFirstFile1.html

Voici un petit exemple.

 #include  #include  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; }