Liste de fichier en C - Programmation
Marsh Posté le 23-01-2002 à 22:41:41
a mon avis, tu aurai + de reponse sur le forum programmation...
en fait tu recup la trame envoyer par le serveur ftp c ca ?
Marsh Posté le 23-01-2002 à 22:47:15
je me suis effectivement tromper de forums grave erreur de ma part mes excuses pour ce post déplacé
merci
Marsh Posté le 23-01-2002 à 23:16:29
pas encore déplacé...
ça ne saurait tarder !
Marsh Posté le 23-01-2002 à 23:25:59
La nuit des temps... Barjavel, il a fait un ravage...
Marsh Posté le 23-01-2002 à 23:26:33
paikan a écrit a écrit : belle culture |
on fait un club ???
Marsh Posté le 24-01-2002 à 10:30:17
R@NNIS a écrit a écrit : opendir et lstat sont tes amis .. fait un man tout est clairement expliqué. |
au pur hasard tu ferais pas un proj du nom de TinyFtpd ? avec kkun ki habite avec ce code postal 77150
demande lui car je lui ai clairement explique comment faire le listage des fichiers . pense meme lui avoir fait le code en grde partie
[edtdd]--Message édité par R@NNIS--[/edtdd]
Marsh Posté le 24-01-2002 à 10:38:02
#ifdef COMPIL_MS // Microsoft only
#include <io.h>
#elseif COMPIL_LINUX // Linux only
#include <dirent.h>
#endif
.
.
.
char* szDir[MAX_DIR_LEN]; // directory to be searched
char* szFileName[MAX_FILE_NAME]; // can be used
char* szSearchCriteria[MAX_LEN]; // search criteria
#ifdef COMPIL_MS // Microsoft only
struct _finddata_t FindResult;
long hFileSearch;
#elseif COMPIL_LINUX // Linux only
DIR* pDir;
struct dirent* pDirEntry;
struct stat Status;
#endif
#ifdef COMPIL_MS // MICROSOFT compilation
chdir(szDir);
hFileSearch = _findfirst( SearchCriteria, &FindResult );
while ( _findnext( hFileSearch, &FindResult ) != -1 ) // search directory for matching files
{
printf("%s %ld\n", FindResult.name, FindResult.size);
}
_findclose( hFileSearch );
#elseif COMPIL_LINUX // LINUX compilation
pDir = opendir(szDir);
if (pDir == NULL)
return FCT_RET_ERROR;
for (pDirEntry = readdir(pDir); pDirEntry != NULL; pDirEntry = readdir(pDir)) // search directory for file entries
{
if (stat(pDirEntry->d_name, &Status) < 0)
fprintf("File not found\n" );
else
printf("%s %ld\n", szFileName = pDirEntry->d_name, Status.st_size);
}
#endif
****************************************************
Si tu veux faire une recherche recursive, tu dois ajouter un test sur le FindResult.attrib = _A_SUBDIR sous MS, et sous Linux tu peux ajouter un stat(szFileName, &Status) (szFileName contenant le nom du fichier) et tester avec S_ISDIR(Status.st_mode) qui renverra 1 si l'entree est un repertoire.
Et pis remplace les printf() par ce que tu veux pour construire ta liste (ecriture dans un fichier, dans un tableau en memoire, etc)
Vala je pense que ca devrait suffir
[edtdd]--Message édité par Kaz Ander--[/edtdd]
Marsh Posté le 23-01-2002 à 22:02:51
J aurais bien voulu un petit coup demain sur comment faire une fonction en C qui permet de faire la liste des fichiers contenu dans un répertoire
Le but ce serait de l'implanter dans un serveur ftp sous linux afin de repondre a une commande LIST je sais que le serveur envoi cette liste sous forme de fichier en ascii par le canal de donnée mais je sais pas exactement quel format ca doit avoir
Quelqu un pourrait il maider??
Merci d 'avance