Entra

View Full Version : C++ : verificare l'esistenza o meno di un file


leon84
04-04-2005, 11:39
Come posso fare col minor numero di istruzioni a verificare semplicemente che un file situato in una cartella esiste o meno ?

ilsensine
04-04-2005, 11:43
s/o?

leon84
04-04-2005, 11:50
Originariamente inviato da ilsensine
s/o?

Ops Sorry ... Windows xp

ilsensine
04-04-2005, 11:59
GetFileAttributes?
Qualcuno che programma sotto windows potrebbe suggerirti una soluzione più appropriata.

tglman
04-04-2005, 12:06
Forse FindFirstFile è un po più approriata per questo tipo di operazioni...
la Specifica su msdn eccola qui (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/findfirstfile.asp).
Ciao.

leon84
04-04-2005, 12:36
Se ricordo bene già quando si apre un file in lettura se l'apertura non va a buon fine ti ritorna un errore ....

tipo :
fstream prova;
prova.open("file.dat",ios::in);

mi pare che open debba ritornare qualcosa ma non ne sono tanto sicuro o meglio non lo ricordo ...

ilsensine
04-04-2005, 13:56
Non "aprirei" il file per testarne l'esistenza, anche se è il metodo in apparenza più semplice. Può avere effetti collaterali (ad es. modificare la data di ultimo accesso) o fallire in situazioni particolari (ad es. un file che non puoi leggere, ma dentro una directory che puoi sfogliare).

tglman
04-04-2005, 13:58
si diciamo che la open di fstream dovrebbe tornare un valore 0 cioè falso quando l'apertura del file va male e un valore non zero cioè vero quando l'apertura va bene, ma allore se devi utilizzare questo metodo ti conviene usare l'fopen o addirittura l'open a basso livello in modo che non istanzi nessun oggetto.
Ciao.

pela
04-04-2005, 14:58
Originariamente inviato da ilsensine
Non "aprirei" il file per testarne l'esistenza, anche se è il metodo in apparenza più semplice. Può avere effetti collaterali (ad es. modificare la data di ultimo accesso) o fallire in situazioni particolari (ad es. un file che non puoi leggere, ma dentro una directory che puoi sfogliare).
in linux in questo caso come conviene fare? per esempio se devo testare l'esistenza del file e chiedere se sovrascriverlo

ilsensine
04-04-2005, 15:00
man 2 stat

cionci
04-04-2005, 16:06
Forse GetFileSize è la più semplice...
In ogni caso esiste stat anche in Win32...