Windows에서 프로그램 구성 파일을 유지하기에 가장 좋은 위치는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1152065

문제

내 프로그램에는 일부 구성 세부 정보가 .ini 파일로 유지되어야합니다. 이 프로그램은 또한 IE 및 Firefox에 확장자를 설치 하며이 확장 에서도이 .ini 파일을 읽고 싶습니다. "... AppData/Roaming ..."에 .ini를 유지하면 보호 모드의 IE 확장 기능이 읽거나 쓰여질 수 없습니다. 내가 아는 한 AppData/locallow 만 보호 모드에서만 읽을 수 있습니다. 모든 구성 세부 정보를 "... AppData/localloe ..."로 이동하면 항상 작동합니까? 이것이 STD 웨이인가요? 내가 쓴 모든 것은 Vista Context에 있습니다. XP와 함께 작동합니까? Win7?

도움이 되었습니까?

해결책

이 질문에 대한 내 대답을 참조하십시오. 사용자 당 주를 저장하는 곳을 결정하는 방법은 무엇입니까? 기재? AppData? 고립 된 저장소?

거기에서 인용 할 :

Vista의 사용자의 "로밍"폴더 또는 XP의 "응용 프로그램 데이터"의 파일은 사용자와 함께 이동하므로 모든 설정과 데이터가 저장되어야합니다.

Vista의 "local"및 "locallow"아래의 파일과 XP의 "로컬 설정"은 그렇지 않으므로 임시 파일, 특정 컴퓨터에 연결된 것 또는 다시 계산할 수있는 데이터에 적합한 장소입니다.

Vista에서는 우리 모두가 알고 사랑하는 새로운 보안 기능의 일환으로 "낮은 무결성 모드"(예 : 보호 모드에서)로 프로그램을 실행할 수 있습니다. 해당 프로그램은 권한이 줄어들고 파일에 액세스 할 수 없습니다. 사용자의 프로필 - "locallow"폴더의 파일을 제외하고.

결론적으로, "locallow"에 저장된 파일은 본질적으로 불안하고 "로컬"/"로컬 설정"의 파일은 일부 대기업에서는 사용할 수 없을 가능성이 높습니다. 따라서 정당한 이유가 있고 당신이하고있는 일을 정확히 알고 있지 않는 한 "로밍"/"응용 프로그램 데이터".

업데이트:

  1. 프로파일 로밍이 사용될 때 (큰 협력 환경) 로컬 및 로우 럴의 내용은 통지없이 사라질 수 있습니다.
  2. 서버가 사용자 (예 : 시스템 또는 네트워크)보다 다른 계정으로 실행되면 해당 폴더의 차이점을 얻게됩니다.

다른 팁

프로그램 데이터의 폴더 경로를 얻으려면 Winapi를 사용해야합니다.

wchar_t path_buf[MAX_PATH];
SHGetFolderPath( NULL, CSIDL_COMMON_APPDATA, NULL, SHGFP_TYPE_CURRENT, &path_buf[0] );

Windows Vista 기능에서 ShgetfolderPath가 대체되었습니다 Shgetnownfoldedpath. 그 오래된 기능은 이제 Shget KnownfolderPath의 래퍼입니다.

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