Feedback

C# - user.config löschen

Veröffentlicht von am 17.10.2008
(5 Bewertungen)
Das Löschen der user.config und der von der Konfiguration erstellen Pfade wird von einigen Deinstallations-Anwendungen nicht durchgeführt. Für eine "saubere" Deinstallation sollte dies aber geschehen. Nachfolgendes Snippet zeigt wie das geht.

Dabei wird die "normale" Anwendung insofern erweitert dass in der Befehlszeile das Argument "-del" übergeben werden kann. Ist dies der Fall wird die Anwendung gestartet und die user.config gelöscht. Anschließend wird die Anwendung beendet.
Wird keine Befehlszeile übergeben wird das Programm normal ausgeführt. Dadurch dass das Programm sowohl zur "normalen" Ausführung verwendet wird wie auch zum Löschen der user.config ist sichergestellt dass die richtige user.config gelöscht wird.
GFU-Schulungen  [Anzeige]

C# Aufbaukurs

Sie haben grundlegende .NET- und C#-Kenntnisse und und wollen diese nun erweitern. Der Aufbaukurs C# führt Sie ein die Arbeit mit Interfaces und Delegates, Generics und Parallel Computing.

C# Grundlagen

Die Schulung vermittelt Ihnen die Grundlagen von C# in der Arbeit mit Datentypen sowie bei Klassenbibliotheken. Sie lernen, mit Variablen umzugehen und deren verschiedene Formen zu konvertieren. 

using System;
using System.Configuration;
using System.IO;

namespace TestSettings
{
	class Program
	{
		/// <summary>
		/// Der Haupteinstiegspunkt für die Anwendung.
		/// </summary>
		/// <param name="args">
		/// Befehlszeilenargumente.
		/// <para>
		/// Werte:
		/// <list type="table">
		///		<listheader>
		///			<term>Argument</term>
		///			<description>Befehlszeilenargument</description>
		///		</listheader>
		///		<item>
		///			<term><c>-del</c></term>
		///			<description>löscht die user.confg</description>
		///		</item>
		/// </list>
		/// </para>
		/// </param>
		static void Main(string[] args)
		{
			if (args.Length > 0 && args[0] == "-del")
			{
				// user.config holen:
				Configuration config =
					ConfigurationManager.OpenExeConfiguration(
						ConfigurationUserLevel.PerUserRoamingAndLocal);

				// Pfad ermitteln:
				DirectoryInfo di = new DirectoryInfo(config.FilePath);

				// Ordner und übergeordneten Ordner der user.config
				// löschen -> durch true werden alle Dateien gelöscht.
				di.Parent.Parent.Delete(true);

				// Programm verlassen:
				return;
			}

			Console.WriteLine("Normale Programmausführung");
			Console.ReadKey();
		}
	}
}

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!