2008-09-29 11 views
3

내가 만들고있는이 응용 프로그램에 대한 암호화 된 형식으로 사용자의 로그인 정보를 저장해야하지만 파일을 저장할 최적의 위치가 확실하지 않습니다. 사용자별로 프로그램 응용 프로그램 폴더에 저장하고 싶지 않습니다.Windows XP 및 Vista 응용 프로그램에 대한 사용자 정보를 저장하는 가장 좋은 장소

그럼 폴더를 저장하는 가장 좋은 폴더는 무엇입니까?

편집 : C++을 사용하십시오.

답변

3

C : \ Documents and Settings \ % username % \ Local Settings \ Application 데이터는 Wikipedia에 따라 적절한 위치에 있습니다. 기사에 따르면이 위치는 "사용자 별 및 컴퓨터 별 응용 프로그램 설정"에 사용됩니다.

편집 : Cruiser는 Vista에서 C : \ Users \ % username %이고 하드 코딩되어서는 안된다는 주석 (내가 아직 답글을 달았지만 아직 코멘트 할 수 없음)을 지적했습니다. 감사.

+1

Vista에는 기본적으로 C : \ Documents and Settings \ % username % -> C : \ Users \ % username %이 (가) 있으므로 경로를 하드 코드하지 않도록 변경할 수 있습니다. – cruizer

+3

이 폴더를 가져 오는 방법은 다음과 같습니다. SHGetSpecialFolderPath (NULL, szPath, CSIDL_PERSONAL, false) – Bill

+0

내 의견에 감사드립니다. CSIDL_APPDATA를 사용해야합니다. CSIDL_PERSONAL은 사용자 문서 디렉토리 용입니다. – Bill

0

.NET을 사용하고 있습니까? 약 IsolatedStorage 어때요? 그렇게하면 디렉토리 위치에 대해 걱정할 필요가 없습니다 ...

+0

응용 프로그램의 새 버전/설치에 원래 분리 저장 파일이 계속 표시 될 수 있으므로주의해야 할 수도 있습니다. – FryHard

0

사용자 정보는 항상 % HOMEDRIVE %% HOMEPATH % (사용자 홈 디렉토리에 매핑 됨)의 하위 디렉토리에 있어야합니다. 예외 없음. 사용자 별 응용 프로그램 별 설정을위한 좋은 장소는 % APPDATA % 내의 하위 디렉토리입니다. XP에서는 "% HOMEDRIVE %% HOMEPATH % \ Application Data"로 매핑되고 Vista에서는 "% HOMEDRIVE %% HOMEPATH % \ AppData \ Roaming"으로 매핑됩니다.

1

예, 로컬 응용 프로그램 경로가 승자와 같습니다. http://msdn.microsoft.com/en-us/library/bb762494.aspx

예 :

char localAppPath[MAX_PATH]; 
SHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA, NULL, SHGFP_TYPE_CURRENT, localAppPath); 
+0

암호화 된 경우에도 사용자 자격 증명을 일반 파일에 저장하면 안됩니다. 실제로 데이터 보호 저장소에 보관해야합니다. 결국 그것은 당신의 선택입니다. :-) –

0

특수 폴더를 얻을 .NET을 사용하는 경우

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 

을 사용할 수 있습니다

나는 C에서 그것을 얻을 MSDN에서이 기사를 ++ 발견 또는

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); 

로밍 버전이 아닌 경우.