Oppure

Loading
28/06/12 9:27
Sybil_Vane
ciao a tutti,

volevo chiedervi un piccolo aiuto. Dovrei scorrere una directory (ne conosco già il path) e relative sottodirectory se esistono, tutto sarebbe molto semplice se potessi usare lo standard POSIX, ma causa direttive dall'alto non mi è possibile...

La mia domanda è questa: che voi sappiate nello standard Ansi c'è un modo per accorgersi se un determinato FILE è una directory?

Vi ringrazio ;)
aaa
28/06/12 11:58
nessuno
Parli di Windows o Linux?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
28/06/12 11:59
Sybil_Vane
scusa hai ragione non l'ho scritto..
programmo su linux ma il codice dovrebbe essere portabile..
grazie :)
aaa
28/06/12 12:12
nessuno
Il C non ha specifiche funzionalità rispetto al file system (di cui non conosce nulla).

E' il sistema operativo che fornisce le primitive per l'accesso ai file.

Con Linux puoi usare la funzione

stat

e testare il campo st_mode con una maschera di valore costante S_IFDIR
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
28/06/12 12:22
Sybil_Vane
si ti ringrazio :) ho già implementato il tutto per linux :)

ma ci è stato richiesto di fare del codice portabile e ho visto che, proprio come hai detto, lo standard ansi è indipendente dal file system quindi non saprei proprio come fare un codice portabile che cicli sulle directory e sottodirectory :(

aaa
28/06/12 12:27
nessuno
Il codice *sorgente* sarà portabile nel senso che dovrai ricompilarlo nell'ambiente di destinazione.

Basta scrivere codice per le due piattaforme impostando correttamente i vari blocchi condizionali, ad esempio

#ifdef __unix__ 
# include <unistd.h>
...
#elif defined _WIN32 
# include <windows.h>
...
#endif

Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
28/06/12 12:32
Sybil_Vane
ottimo! quindi per la parte windows mi basterà implementare l'equivalente di readdir ecc.. che se non sbaglio dovrebbe trattarsi delle funzioni FindFirstFile e FindNextFile giusto?

ti ringrazio tantissimo! :)
aaa
28/06/12 13:32
nessuno
Giusto ...

Ciao
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.