Feedback

C# - user.config löschen

Veröffentlicht von am 10/17/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.
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!