문제

Windows 시스템에 응용 프로그램 설정을 배치하기위한 허용 가능한 시작점을 찾고 있습니다. 나는 둘 이상의 응용 프로그램이 있습니다. 개인적인 이유로 레지스트리를 사용하고 싶지 않습니다. 일반 텍스트 초기화 파일 (.ini)을 선호합니다. 또한 실행 파일과 동일한 디렉토리에 파일을 보관하고 싶지 않다고 생각합니다. 이상적인 상황을 통해 사용자 나 시스템 관리자가 쓸 수있는 일반적인 곳에 보관할 수 있습니다.

맞아, 난 Windows 사용자가 아니야, 내 첫 추측은 $HOME/.my_company_name 그리고 /etc/my_company_name, 그러나 창문 에서이 장소와 개념적으로 동등한 것이 있습니까?

그냥 조사 SET 출력 및 추측 :

%APPDATA%
%HOMEDRIVE%%HOMEPATH%\Local Settings
%SYSTEMROOT%

그건 그렇고 : 여전히 Windows 서비스 내에서 이러한 변수가 여전히 존재하는지 확인해야합니다 ...

도움이 되었습니까?

해결책

AppData가 당신이 원하는 것이라고 생각합니다.

shgetfolderpath (shfolder.dll)를 사용 하여이 프로그래밍 방식으로 얻을 수 있습니다.

에서 MSDN '데이터 및 설정 관리' (섹션 4.2 '응용 프로그램 데이터를 올바르게 분류하고 저장하는 참조') :

TCHAR szAppData[MAX_PATH];
…
hr = SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, szAppData);

추가 [company name]\[product name]\[version] szappdata를 사용하여 PathAppend:

PathAppend(szAppData, "Company\Product\1.0\File.ini")

도 있습니다 CSIDL_COMMON_APPDATA 비 사용자 특정 데이터의 경우 CSIDL_LOCAL_APPDATA 비 로밍 데이터의 경우 (사용자가 다른 컴퓨터에 로그인 할 때 네트워크를 통해 복사해서는 안되는 데이터).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top