Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
597 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C] Récuperer le nom d'un fichier zip

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Récuperer le nom d'un fichier zip

n°1978191
wassgha
Posté le 28-03-2010 à 21:09:49  profilanswer
 

Salut,
Je suis un bon noob de C, et je veux faire une fonction qui me retourne le nom et la taille d'un fichier zip que je connais pas son nom et qui est contenu dans le répertoire du code.
Donc,

  • Avoir la liste des fichiers dans le répertoire "."
  • Filtrer la liste pour avoir le fichier zip (filtrage par extention) et il n'y a qu'un seul fichier zip ;)
  • Mettre dans deux variables le nom et la taille du fichier zip.

Un grand merci pour celui qui me donne le code pour faire tout cela et je le citerai dans l'application ;)
Merci d'avance,
Wassgha

mood
Publicité
Posté le 28-03-2010 à 21:09:49  profilanswer
 

n°1978202
snafu8
Posté le 28-03-2010 à 21:47:12  profilanswer
 

t'es obligé de le faire en C? J'ai dans l'idée que ce serait plus facile en shell.

n°1978203
wassgha
Posté le 28-03-2010 à 21:58:22  profilanswer
 

Oué obligé car c'est pour PSP :/

n°1978206
Flaie
No it's necessary
Posté le 28-03-2010 à 22:11:49  profilanswer
 

Salut, je sais pas ce que tu as de dispo niveau header (si c'est standard) sur psp, mais voici un exemple de comment tu peux faire ça en C:
 

Code :
  1. #include <stdio.h>
  2. #include <sys/types.h>
  3. #include <dirent.h>
  4. #include <string.h>
  5. #include <sys/stat.h>
  6. #include <stdint.h>
  7. int main(void)
  8. {
  9.     DIR *dp;
  10.     struct dirent *ep;
  11.     char* zip = NULL;
  12.     /* open the current directory and search for the zip file */
  13.     dp = opendir("./" );
  14.     if (dp != NULL)
  15.     {
  16.         /* for each directory entry, check if the file ends with '.zip' */
  17.         const char* str = NULL;
  18.         while (ep = readdir(dp))
  19.             if ((str = strstr(ep->d_name, ".zip" )) && strlen(str) == strlen(".zip" )) {
  20.                 zip = ep->d_name;
  21.             }
  22.         closedir(dp);
  23.     }
  24.     else {
  25.         perror("Couldn't open the directory\n" );
  26.         return 1;
  27.     }
  28.    
  29.     /* if we didn't find it, exit */
  30.     if (!zip) {
  31.         perror("The zip file wasn't found!\n" );
  32.         return 1;
  33.     }
  34.    
  35.     /* try to stat the file to get the file information */
  36.     struct stat file_status;
  37.     if (stat(zip, &file_status)) {
  38.         fprintf(stderr, "could not stat the file %s", zip);
  39.         return 1;
  40.     } else
  41.         printf("Zip file: %s\n    size: %9jd Kb\n", zip, ((intmax_t)file_status.st_size) / 1024);
  42.    
  43.     return 0;
  44. }


 

$ gcc -o t t.c && ./t
Zip file: desserts.pages.zip
    size:      5634 Kb


 
Tout est dans l'utilisation de DIR, dirent et stat, pour plus d'infos voir les manpage associées
J'espère que ça te conviendra :jap:  


---------------
Always wear a camera!

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C] Récuperer le nom d'un fichier zip

 

Sujets relatifs
remplacement dans un fichier de config en VBS ou Batch DOSDNS 323 et fichier HTML
Ouvrir un fichier dans une fenetre WindowsPerl - Fichier Texte Sed
Chercher des valeurs dans un fichier XMLlire un fichier .mat en C
Lier un fichier .cfg à un fichier .exe à l'aide d'un fichier .batRécupérer l'id d'un input
Plus de sujets relatifs à : [C] Récuperer le nom d'un fichier zip


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR