Laden...

Per Uninstaller Dateien und Verzeichnisse löschen

Erstellt von ibaxx vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.500 Views
I
ibaxx Themenstarter:in
90 Beiträge seit 2007
vor 13 Jahren
Per Uninstaller Dateien und Verzeichnisse löschen

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

2.187 Beiträge seit 2005
vor 13 Jahren

Hallo ibaxx,

Schon folgendes Probiert?

System.Diagnostics.Process.Start("DEL",GetRootedPathOfExe());

Gruß
Juy Juka

I
ibaxx Themenstarter:in
90 Beiträge seit 2007
vor 13 Jahren

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

G
538 Beiträge seit 2008
vor 13 Jahren

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)

I
ibaxx Themenstarter:in
90 Beiträge seit 2007
vor 13 Jahren

del, rd, rmdir sind alles befehle die sind nur in der cmd

G
538 Beiträge seit 2008
vor 13 Jahren

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)

I
ibaxx Themenstarter:in
90 Beiträge seit 2007
vor 13 Jahren

ist zumindest der letzte befehl.
hab gerade den vorherigen post geändert gehabt... del, rd rmdir sind befehle die nur in der cmd bestehen

G
538 Beiträge seit 2008
vor 13 Jahren

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)

1.378 Beiträge seit 2006
vor 13 Jahren

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

49.485 Beiträge seit 2005
vor 13 Jahren

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