Cancellare file

di il
2 risposte

Cancellare file

Buongiorno a tutti, nel mio programma C (su ubuntu) devo cancellare dei file.
In pratica il nome dei files che vorrei eliminare iniziano tutti per "ssgv-s" e vorrei eliminarli tutti se sono presenti.

Ho provato a fare così:


#include <sys/stat.h>

...

struct stat s;
if(stat("ssgv-s", &s) == 1) { // verifica esistenza file
	system("rm ssgv-s*");
}
...

Ogni volta che eseguo il programma entra sempre nel ramo then anche quando il file in realtà non esiste. Spero in un aiuto, grazie mille

2 Risposte

  • Re: Cancellare file

    Ciao, ti suggerisco di utilizzare la funzione unlink() per cancellare singoli file e di effettuare tu stesso la lista dei file con readdir(): il vantaggio è che hai così il controllo di quello che sta succedendo.
    Se invece vuoi continuare ad utilizzare system() allora puoi anche semplicemente ignorare il controllo, se non ci sono file allora rm non farà niente; comunque non ha molto senso testare "ssgv-s" quando magari poi hai file del tipo "ssgv-sXXXXX", il test potrebbe non essere corretto.
    Infine, se vuoi proprio utilizzare la funzione stat() allora verifica bene il valore di ritorno () perchè se ha successo il valore di ritorno è 0...
  • Re: Cancellare file

    Ok grazie del consiglio candaluar
Devi accedere o registrarti per scrivere nel forum
2 risposte