Ścieżka do Application Data w C#

Uwaga! Informacje na tej stronie mają ponad 5 lat. Nadal je udostępniam, ale prawdopodobnie nie odzwierciedlają one mojej aktualnej wiedzy ani przekonań.

Thu
17
Apr 2008

Żeby program był elegancki i działał dobrze (zwłaszcza pod Vista...), powinien swoje pliki konfiguracyjne i inne dane trzymać w katalogu C:\Dokuments and Settings\Login\Application Data\..., a nie w podkatalogu Program Files, gdzie leży plik wykonywalny. Jak pobrać ścieżkę do tego katalogu w C#?

Microsoft przewidział do tego metodę statyczną Application.UserAppDataPath. Niestety ona działa w ten sposób, że zwraca (a jeśli nie istnieje to także tworzy na dysku) ścieżkę typu Application Data\Nazwa firmy\Nazwa programu\Wersja.Wersja.Wersja.Wersja. Taka zamotana ścieżka to nienajlepszy pomysł. Szczególnie, że konfiguracja powinna działać także w nowych wersjach programu.

Dlatego lepszym rozwiązaniem jest chyba taki kod:

private string GetConfigFileName()
{
  string Dir = System.IO.Path.Combine(
    Environment.GetFolderPath(
      Environment.SpecialFolder.ApplicationData),
      "Nazwa programu");
  if (!System.IO.Directory.Exists(Dir))
    System.IO.Directory.CreateDirectory(Dir);
  return System.IO.Path.Combine(Dir, "Plik.ext");
}

Comments | #.net Share

Comments

[Download] [Dropbox] [pub] [Mirror] [Privacy policy]
Copyright © 2004-2020