superdario (Normal User)
Newbie
Messaggi: 6
Iscritto: 03/07/2013
|
Ciao a tutti, sto facendo una sorta di disinstallazione attraverso un file bat perchè il programma che ho realizzato è molto leggero per cui volevo evitare di appesantirlo con delle api apposite, anche perchè deve rimanere leggero. Il mio problema sta nel fatto che non riesco a cancellare la cartella dove è contenuto il mio programma.
In questo modo creo il file bat che mi permette di eliminare il mio programma:
Codice sorgente - presumibilmente C# |
public void createFile() { string path = Path.GetDirectoryName(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)) + "\\" + "disinstalla.bat"; using (StreamWriter sw = File.CreateText(path)) { sw.WriteLine("timeout /t 10 /nobreak > NUL"); //attende che il programma si chiuda sw.WriteLine("del " + Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\*"); //cancella il contenuto della directory sw.WriteLine("rd " + Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)); //cancella la cartella sw.WriteLine("del " + path); //si elimina } }
|
Il problema è che una volta che avvio il file bat, cancella il mio programma, tutti i file che utilizza e si auto elimina, ma non elimina la cartella che contiene il programma!
Una volta che eseguo la procedura di disintallazione, anche andando a cancellare la cartella con i comandi da prompt la cancellazione non avviene e mi appare un errore. Non riesco a capire come mai! Come faccio ad eliminare la cartella che contiene l'eseguibile del programma?
|