» »

[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
61133 (1022) nightrage
»

[C++] problem z binarnimi datotekami

Oddelek: Programiranje
9920 (785) mallard
»

[c] Enaki datoteki

Oddelek: Programiranje
71014 (874) Spura
»

C strukture, kazalci naloga pomoc

Oddelek: Programiranje
51446 (1341) DavidJ
»

Potrebuje HEX v BIN pretvornik

Oddelek: Programiranje
101854 (1707) roscha

Več podobnih tem