» »

[C/C++] in folder list

[C/C++] in folder list

shock ::

Pozdravljeni,
Pišem program za embedded pc, ki naj bi izpisal vsebino v mapi. Težava je v tem da program v embeded sistemu ne zna ločit ali je določena vsebina datoteka ali mapa. Drugač program na navadnem PC-ju dela brez problema. Skratka program v embeded pc-ju vrne "de->d_type" vedno nič. Ali obstaja še kakšna druga varianta, da mi embeded pc zna ugotovit ali je določena vsebina datoteka ali mapa?

int main(int argc, char *argv[])
{
  struct dirent *de=NULL;
  DIR *d=NULL;
  unsigned char isFile =0x8;


  if(argc != 2)
  {
    fprintf(stderr,"Usage: %s dirname\n",argv[0]);
    return(1);
  }

  d=opendir(argv[1]);
  if(d == NULL)
  {
    perror("Couldn't open directory");
    return(2);
  }

  // Loop while not NULL
  while(de = readdir(d)){
    //if (de->d_type == isFile) {
        printf("%s\n",de->d_name);
        printf("%d\n\n",de->d_type);
    //}
  }
  closedir(d);
  return(0);
}
  • spremenil: Mavrik ()

Ktj ::

Za tisto kar si v dvomu preveri če vsebuje . in ..! Če ne potem ni mapa. Zelo potratna rešitev vendar edino kar mi je prišlo na pamet.

LP

shock ::

Kako to misliš . in ..?

Lp

l0g1t3ch ::

če si znotraj mape potem morata obstjati datoteki z imenom . in ..
. označuje trenutni dir
.. označuje dir na enem nivoju višje

fiction ::

Manual pravi:

unsigned char d_type; /* type of file; not supported
by all file system types */
Mogoce bi lahko poklical stat() oz. kaksno varianto le-tega (lstat, fstat) in pogledal st_mode. Ce tudi to ne gre bi lahko vnos preizkusil tako, da bi rekel chdir() in pogledal, ce slucajno dobis ENOTDIR (takrat gre po vsej verjetnosti za datoteko, sicer pa za direktorij).

shock ::

Na koncu sem rešil zadevo tako, da sem preverjal za vsak output, če je direktorij.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Java skeniranje map in podmap

Oddelek: Programiranje
61149 (1038) nightrage
»

[C++] problem z binarnimi datotekami

Oddelek: Programiranje
9943 (808) mallard
»

[c] Enaki datoteki

Oddelek: Programiranje
71032 (892) Spura
»

C strukture, kazalci naloga pomoc

Oddelek: Programiranje
51461 (1356) DavidJ
»

Potrebuje HEX v BIN pretvornik

Oddelek: Programiranje
101869 (1722) roscha

Več podobnih tem