Rimuovere file out - chiarimento

di Anonimizzato15597 il
5 risposte
Salve a tutti, ho dei problemi a rimuovere dei file .txt creati dal mio programma.
In particolare, nella directory _RISULTATI, vengono memorizzati 3 file, nel modo seguente:
per il primo:
      fileName.Format("_RISULTATI/FRACTSOL/FractSol%d.txt", i+1);
per il secondo:
	fileName.Format("_RISULTATI/FRACTSOL/OtherSol.txt");
per il terzo:
	fileOut.Format("%s/FileOut_%d_%0.6f.txt", dir, iter,tempo);
Ora, per eliminarli ho creato 3 funzioni:
void RemoveFile(const char* path)
{
   int i=0, res;
   do { 
      CString fileName; // Manca il percorso
      fileName.Format("%s.txt", path, i);
      res = remove( fileName );
      i++; 
   }  while (res==0);
}
void RemoveFileTwo(const char* path)
{
	int i = 0, res;
	do {
		CString fileName; // Manca il percorso
		fileName.Format("%s_%d_%0.6f.txt", path, i);
		res = remove(fileName);
		i++;
	} while (res == 0);
}

void RemoveFileThree(const char* path)
{
	int i = 0, res;
	do {
		CString fileName; // Manca il percorso
		fileName.Format("%s%d.txt", path, i);
		res = remove(fileName);
		i++;
	} while (res == 0);
}
successivamente:
bool TGeoProblem::EraseSolutionFiles()
{

   RemoveFileThree("_RISULTATI/FRACTSOL/FractSol");
   RemoveFile("_RISULTATI/FRACTSOL/OtherSol");
   RemoveFileTwo("_RISULTATI/OUT/FileOut");

   
   return true;
}
il problema è che mentre OtherSol si elimina, gli altri file .txt non si eliminano e continuano a restare anche dopo la chiamata alle funzioni RemoveFile. Sicuramente ho sbagliato vista la mia poca esperienza con il C. Qualcuno è in grado di aiutarmi?

5 Risposte

  • Qui

    fileName.Format("%s.txt", path, i);

    mi sembra che manchi il %d
    Deve essere

    fileName.Format("%s%d.txt", path, i);

    In questo

    fileName.Format("%s_%d_%0.6f.txt", path, i);

    mi sembra manchi la variabile tempo (con i valori corretti)
  • Ho provato, ma non sembra funzionare.
    Più semplicemente, esiste un modo per rimuovere tutto ciò che c'è in una cartella?

    grazie
  • Nessuso riesce ad aiutarmi?
  • Per rimuovere tutta la cartella devi costruire una funzione ricorsiva che visiti l'intero direttorio.

    Che cosa non funziona di preciso nella tua implementazione? Hai corretto gli errori suggeriti da oregon?
  • Si, ma i file continuano a rimanere.
Devi accedere o registrarti per scrivere nel forum
5 risposte