2012-06-25 17 views
10

Moja aplikacja musi zainstalować pliki, które mogą być edytowane przez aplikację w czasie wykonywania. Zainstaluj ekran zapewnia alias [CommonAppDataFolder], który rozwiąże c: \ programData w systemie Vista i Windows 7 i będzie również działać w systemie Windows XP. Czy istnieje funkcja win32, która zwróci podobną ścieżkę?Funkcja Win32, aby uzyskać ścieżkę do C: ProgramData

Może potrzebuję wywoływać różne funkcje w zależności od systemu operacyjnego?

Odpowiedz

18

SHGetFolderPath/SHGetSpecialFolderPath Ci to z argumentem CSIDL_COMMON_APPDATA.

Zobacz fragment kodu tutaj (na dole): How to write a Windows XP Application that stores user and application data in the correct location by using Visual C++.

  • Windows XP: C: \ Documents and Settings \ All Users \ Dane aplikacji
  • Windows Vista: C: \ ProgramData
  • systemu Windows 7: C: \ ProgramData

Patrz również: CSIDL.

+0

Wygląda na to, że CSIDL_COMMON_APPDATA rozwiąże następujące problemy: C: \ Documents and Settings \ All Users \ Application Data nie ma możliwości pobrania ścieżki do c: \ ProgramData? Czy nie jest to dobre miejsce do przechowywania tego rodzaju plików? – Mike2012

+1

@ Mike2012, obie ścieżki służą temu samemu celowi - jeden na XP i poniżej, a drugi na Vista i wyżej. Wynik zależy od używanego systemu operacyjnego. – eran

+1

Patrz wyżej - dodane ścieżki przykładowe, których stała rozpoznaje w różnych wersjach systemu Windows. –

Powiązane problemy