Announcement

Collapse
No announcement yet.

Löschen alter Konfigurationsdateien

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Löschen alter Konfigurationsdateien

    Hallo alle zusammen,

    Umgebung: VS 2010, VB-Projekt

    Ich habe verschiedene Usereinstellungen in den ApplicationSettings gespeichert.
    So z.B. den letzten Anmeldenamen usw. . Das läuft alles prima.
    Nach einer Neuinstalltion einer neuen Programmversion wird über das Setup eine neue Datei user.config im Verzeichnis
    C:\Dokumente und Einstellungen\username\Lokale Einstellungen\Anwendungsdaten\Autor\Programmname.e xe_Url_1p1uirgendawas\1.0.0.1
    erstellt. Wobei das letzte Unterverzeichnis die aktuelle Dateiversion darstellt.
    Beim Start des Programmes prüfe ich, ob Usereinstellungen zu übernehmen sind.
    Code:
           If settings.ShouldUpgrade = True Then
                    My.Settings.Upgrade()
                    My.Settings.ShouldUpgrade = False
                    settings.Save()
                End If
    Klappt auch schön.

    Mit der Zeit sammeln sich aber nun etliche dieser user.config Dateien an, da ja je neue Version ein neues Unterverzeichnis erstellt wird.

    Ich würde gern nach meiner Aktualisierung der neuen Settings die alte user.config bzw. das alte Versionsverzeichnis löschen. Gibt es eine Möglichkeit das Verzeichnis der Setting-Datei programmtechnisch zu ermitteln, um es dann löschen zu können. Ich habe einfach nichts gefunden.

    Vielen Dank für Eure Unterstützung

  • #2
    Lösungsidee

    Hallo, vielleicht haben die Ostereier mir geholfen. Anbei meine Lösungsidee
    Code:
                If settings.ShouldUpgrade = True Then
                    My.Settings.Upgrade()
                    My.Settings.ShouldUpgrade = False
                    settings.Save()
                    'löschen alter Dateien
                    Dim config As Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal)
                    Dim di As DirectoryInfo = New DirectoryInfo(config.FilePath)
                    Dim p As Int16 = InStrRev(di.FullName, "\")
                    Dim pfolder As String = Mid(di.FullName, 1, p - 1)
                    p = InStrRev(pfolder, "\")
                    pfolder = Mid(pfolder, 1, p - 1)
                    'löschen alle verzeichnisse <> pname
                    Dim pname As String = di.Parent.Name    'aktueller Name ConfigVerzeichnis
                    di = New DirectoryInfo(pfolder)
                    Dim diArr As DirectoryInfo() = di.GetDirectories()
                    Dim dri As DirectoryInfo
                    For Each dri In diArr
                        If dri.Name <> pname Then
                            Directory.Delete(di.FullName & "\" & dri.Name, True)
                        End If
                    Next dri
                    '-- Ende löschen alte config
              End If
    Bedingt natürlich .
    Code:
    Imports System.IO
    Imports System.Configuration
    Nach Übernahme aller alten Settings können nun die alten Konfigurationen gelöscht werden und der Datenmüll hat ein Ende.

    Wenn jemand noch einen Verbesserungsvorschlag hat, dann bitte gern.

    vielen Dank..

    Comment

    Working...
    X