Pagina 1 di 1

C++ come faccio a cancellare un file se vuoto?

Inviato: dom 12 giu 2005, 16:17
da Almucantarat
Ciao, volevo sapere come posso fare a cancellare un file se questo è vuoto (e solo in questo caso)

Grazie

Inviato: lun 13 giu 2005, 0:16
da useless
basta che trovi il filesize, e se questo è == 0, chiami remove (o unlink) sul file. non conosco le classi del c++ x fare questo, ma in c puoi fare (anche se è un mezzo hack):

if (fp = fopen ("antani", "r")) {
fseek (fp, SEEK_END, 0);
size = ftell (fp);
fclose (fp);
if (size == 0)
remove ("antani");
}

al posto del truschino fseek/ftell puoi direttamente usare la syscall stat x ottenere il filesize.

Inviato: mar 14 giu 2005, 12:45
da Almucantarat
grazie!

ho provato ad aggiungere il codice al programma, ma ho in ritorno i seguenti errori:

`fp' undeclared (first use this function)
assignment of read-only variable `size'

come li elimino?

Inviato: mar 14 giu 2005, 13:22
da useless
be', dovresti provare a capire cosa succede, invece di copiare ciecamente.

fp e size vanno dichiarati, rispettivamente come:
FILE *fp;
unsigned long int size; (o qualcosa di simile);

tra l'altro forse devi cambiare nome a size, fai delle prove.

Inviato: mar 14 giu 2005, 16:01
da Almucantarat
ok, grazie!