Liste de fichier en C

Liste de fichier en C - Programmation

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

Reply

Marsh Posté le 23-01-2002 à 22:02:51   

Reply

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 ?


---------------
Signatures aux choix Votez:  O - Le python c'est bon, mangez-en  O - L'abus de forum rend dependant, postez avec modération
Reply

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

Reply

Marsh Posté le 23-01-2002 à 23:16:29    

pas encore déplacé... :D
 
ça ne saurait tarder !


---------------
Sujet sur les cartes son audiophiles pour mélomanes et musiciens & DAC+ADC
Reply

Marsh Posté le 23-01-2002 à 23:23:51    

comme il est poli le paikan...
 
 
dis, "paikan"... c en rapport avec éléa ? (si ca te dis rien c'est ke c non...)


---------------
Signatures aux choix Votez:  O - Le python c'est bon, mangez-en  O - L'abus de forum rend dependant, postez avec modération
Reply

Marsh Posté le 23-01-2002 à 23:25:12    

belle culture :)

Reply

Marsh Posté le 23-01-2002 à 23:25:59    

La nuit des temps... Barjavel, il a fait un ravage... :o


---------------
Sujet sur les cartes son audiophiles pour mélomanes et musiciens & DAC+ADC
Reply

Marsh Posté le 23-01-2002 à 23:26:33    

paikan a écrit a écrit :

belle culture :)  




 
on fait un club ???
 
:heink: :lol:


---------------
Sujet sur les cartes son audiophiles pour mélomanes et musiciens & DAC+ADC
Reply

Marsh Posté le 24-01-2002 à 10:18:44    

tu programmes sous windows ?

Reply

Marsh Posté le 24-01-2002 à 10:24:50    

opendir et lstat sont tes amis ..
 
fait un man tout est clairement expliqué.


---------------
Mes News
Reply

Marsh Posté le 24-01-2002 à 10:24:50   

Reply

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 ? :D avec kkun ki habite avec ce code postal :D 77150 :D
 
 
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]


---------------
Mes News
Reply

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]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed