Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - problema a visualizzare tutti i file..
Forum - C/C++ - problema a visualizzare tutti i file..

Avatar
Menin (Normal User)
Newbie


Messaggi: 10
Iscritto: 10/12/2008

Segnala al moderatore
Postato alle 14:08
Lunedì, 29/12/2008
Codice sorgente - presumibilmente C++

  1. #include <errno.h>
  2. #include <dirent.h>
  3. #include <stdio.h>
  4. #include<string.h>
  5. #include <stdlib.h>
  6. #define MAX_FILE_NAME 100
  7. #define MAX_FILE 100
  8. #define MAX 10
  9. void leggi_lista_file(int numero);
  10. int apri_directory();
  11. struct File_in_directory{
  12.     int number;
  13.     char file_name[MAX_FILE_NAME];
  14.     char sign[10];
  15. };    
  16.  
  17. int apri_directory()
  18. {
  19.     DIR *Dptr,*testptr;
  20.     FILE *pf;
  21.     int number_of_file=1;
  22.     struct dirent *leggi_dir;
  23.     struct File_in_directory file = {0, "",""};
  24.    
  25.     Dptr = opendir(".");
  26.     pf = fopen("Lista_files.txt","w+");
  27.    
  28.     while((leggi_dir = readdir(Dptr))!= NULL){
  29.         if(leggi_dir->d_name[0]!='.'){
  30.             file.number = number_of_file;
  31.             if((testptr = opendir(leggi_dir->d_name))!=NULL){
  32.                 strcpy(file.file_name,leggi_dir->d_name);
  33.                 strcpy(file.sign,"directory");
  34.                 closedir(testptr);
  35.             }
  36.             else{
  37.                 strcpy(file.file_name,leggi_dir->d_name);
  38.                 strcpy(file.sign,"file");
  39.             }
  40.             fwrite(&file,sizeof(struct File_in_directory),1,pf);
  41.             ++number_of_file;
  42.         }
  43.     }
  44.     printf("il numero dei file sono %d\n",number_of_file-1);
  45.     fclose(pf);
  46.     closedir(Dptr);
  47.     return (number_of_file);
  48. }
  49. void leggi_lista_file(int numero)
  50. {
  51.     FILE *pf1;
  52.     int sum=0;
  53.     struct File_in_directory file = {0,"",""};
  54.    
  55.     if((pf1 = fopen("Lista_files.txt","r"))==NULL){
  56.         printf("Impossibile aprire il file");
  57.     }
  58.     else{
  59.         printf("%-3s%-40s%-10s\n\n","N^","NOME","TIPO");    
  60.    
  61.     while(!feof(pf1)){
  62.         sum+=fread(&file,sizeof(struct File_in_directory),1,pf1);
  63.         if(file.number!=0){
  64.          printf("%-3d%-40s%-10s\n",file.number,file.file_name,file.sign);
  65.           }
  66.          
  67.       }    printf("Il numero di elementi letti sono : %d\n",sum);
  68.     fclose(pf1);
  69. }    
  70. }
  71. int main()
  72. {
  73.     int numero_file;
  74.         numero_file=apri_directory();
  75.         leggi_lista_file(numero_file);        
  76.         return 0;
  77. }


l'applicazione si ferma a leggere solo 25 file.. perchè 25??


Menin ha allegato un file: sorgente.zip (821 bytes)
Clicca qui per scaricare il file
PM Quote