Hallo,
ich suche eine möglichkeit für einen Uninstaller wo am ende der del befehl der cmd.exe aufgerufen wird.
Process delete = new Process();
delete.StartInfo.FileName = "cmd.exe";
delete.StartInfo.Arguments= "/c \"del /s /q "+ ir.ReadString("path", "EXPRESS", "")+"\"";
delete.Start();
nun löscht er dies verzeichnis leider nicht und die commandozeile ist so schnell wieder zu, dass ich keine meldung lesen kann.
löschen über c# geht leider nicht, da sich das Programm selbst entfernen soll.
jemand eine idee?
MfG
Ingo
Hallo ibaxx,
Schon folgendes Probiert?
System.Diagnostics.Process.Start("DEL",GetRootedPathOfExe());
Gruß
Juy Juka
hi,
es soll ein ganzes Verzeichnis gelöscht werden.
aber del ist ein Befehl der Kommandozeile, den man so nicht erreicht.
das selbe Problem ist bei rd.
MfG
Ingo
Wie wäre es das ganze nicht per CMD auszuführen sondern per System.IO?
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
Wenn du Process.Start ausführst läuft das Programm ja auch noch ...
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
ist zumindest der letzte befehl.
hab gerade den vorherigen post geändert gehabt... del, rd rmdir sind befehle die nur in der cmd bestehen
Mir ist grade noch eingefallen:
Die ganzen Deinstaller löschen sich m.E. häufig erst nach dem System neustart. Ich glaube dazu wird ein Runonce eingetragen (evtl. in der Registry)
Ich kann das zwar nur erraten (weil ich i.A. ClickOnce, Setup-Projekte, WiX, o.Ä. verwende), aber ich vermute das wäre eine Lösung.
Edit:
Im übrigen dürfte System.IO.Directory.Delete(string, bool) deine rmdir, rd und del befehle ersetzen.
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
Generier eine .bat Datei, die du dann aufrufst. In der Bat-Datei kannst auch die Konsole mit PAUSE offen halten bzw. kontrollieren ob sie überhaupt läuft und falls nicht liegts an deiner Befehlsdefinition. Hat der Pfad zum Beispiel leerzeichen? Normal müsste man den ja auch unter Anführungszeichen setzen aber ich weiß nicht wie das über cmd.exe /c funktioniert.
Lg XXX
Hallo ibaxx,
del, rd, rmdir sind alles befehle die sind nur in der cmd
ich verstehe ehrlich gesagt nicht, wie man auf den Gedanken kommen kann, dass es im .NET-Framework keine direkte Möglichkeit gibt, Dateien und Verzeichnisse zu löschen. Natürlich gibt es die.
Der einzige Grund, warum ich den Thread offen lasse, ist das Löschen einer EXE-Datei aus sich selbst heraus, nicht ganz so trivial ist. Allerdings wurde auch das schon mehrfach im Forum besprochen. Bitte benutze die Forumssuche und poste die besten Treffer hier. Vielen Dank!
Hallo zusammen,
bitte beschränkt euch auch bei etwaigen weiteren Antworten auf diesen speziellen Aspekt.
herbivore