모든 사용자에게 동일하지만 프로그램에 대해 쓰기 가능해야하는 프로그램 데이터 파일을 저장할 적절한 장소는 무엇입니까? MS Windows XP에서 동일한 위치는 무엇입니까? C : \ ProgramData는 일반 사용자가 설치 한 후에 쓸 수 없다는 것을 읽었습니다. 그게 사실이야? 플랫폼 SDK를 사용하여 프로그래밍 방식으로 해당 디렉토리를 검색하려면 어떻게합니까?Vista 및 ProgramData
답변
CSIDL_COMMON_APPDATA의 SHGetFolderPath(). 배치 파일의 경로를해야하는 경우
는 http://msdn.microsoft.com/en-us/library/bb762181(VS.85).aspx
에서 더 읽기, 당신은 또한 %의 ALLUSERSPROFILE % 환경 변수를 사용할 수 있습니다.
당신은 사용할 수 있습니다
CString strPath;
::SHGetSpecialFolderPath(NULL, strPath.GetBuffer(1024), CSIDL_COMMON_APPDATA, FALSE);
이 Raymond Chen's article on this specific question를 참조하십시오.
요약하면 보안 구멍을 묻습니다.
응용 프로그램은 관리자가 사용되지 않고 컴퓨터에 로그인 할 수 있습니다 모두가 신뢰 :-) S.을 놓친 우리가 다루고있는 회사에서 따라서 사용자간에 데이터를 공유하는 것이 보안 문제는 아닙니다. Vista에서는 사진과 동영상을 공용 폴더에서 공유 할 수 있습니다. Progams 도이 있어야합니다. – frast
여기에 다른 옵션의 좋은 요약이 있습니다 : http://blogs.msdn.com/cjacks/archive/2008/02/05/where-should-i-write-program-data-instead-of-program-files.aspx
은 어디에서 프로그램 데이터 대신 프로그램 파일을 작성해야 하는가? .. "파일을 프로그램 파일을 작성하는 데 사용 내 응용 프로그램이 이미 에 어떤 다른 그것은 한 내 응용 프로그램의 이름으로 넣어 좋은 장소 같은 느낌 :
일반적인 응용 프로그램 코드 업데이트는 이있다 , 그리고 내 사용자가 관리자 였기 때문에 괜찮 았지만, 지금은 이라고 생각합니다. 은 내가 생각한 것처럼 물건을 집어 넣습니다. 심지어 UAC와도 관리자 은 (는) 표준 사용자와 유사한 권한으로 실행됩니다. 대부분의 경우. 그래서, 대신 내 파일을 넣어야합니까? "
사실 SHGetFolderPath
은 더 이상 사용되지 않습니다.
SHGetKnownFolderPath
을 대신 사용해야합니다.
SHGetKnownFolderPath를 사용하면 소프트웨어가 Windows Vista에서만 실행됩니다. SHGetFolderPath는 Windows 2000 이후와 Vista에서도 작동합니다. – frast
@frast, yes. 그러나 SHGetKnowFolderPath 가용성을 확인하고 종료 할 경우 사용할 수 있습니다. (LoadProc 또는 뭐든간에 ...) 그럼 당신의 응용 프로그램은 미래의 증거가 될 것이며 Windows 2000뿐만 아니라 SHGetFolderPath가 삭제 된 Windows 버전에서 작동합니다. –
@Amigable 나는 이것을 할 것이지만, SHGetFolderPath를 지원하지 않는 Windows 버전입니다. – frast
- 1. 엔터프라이즈 라이브러리가있는 ProgramData 폴더에 로깅
- 2. Vista 및 오라클 10g
- 3. 투명성 키 및 Vista
- 4. Delphi 7 및 Windows Vista
- 5. Vista, Visual Studio 및 OutOfMemoryExceptions
- 6. 비스타 경우 ProgramData 명령 줄 액세스
- 7. EntityFramework : ProgramData 폴더에서 SDF 파일 읽기?
- 8. 설치 프로젝트에서 c : \ ProgramData 폴더를 지정 하시겠습니까?
- 9. 프로그램이 Vista 및 Server 2008에서 작동하지 않습니다.
- 10. Vista Business 로그인 및 RDP 문제
- 11. WIA, Vista 및 VB6. 이 코드가 작동합니까?
- 12. Vista \ Win7의 가장 및 레지스트리 조작
- 13. Vista UAC를 사용한 화면 캡처 및 이벤트
- 14. Jammit, mhtml 및 Vista IE7 버그
- 15. 은 Vista 및 7에서 관리자로 실행해야합니다.
- 16. Vista/Win7 저음 및 고음 볼륨
- 17. WxPython, Windows Vista 64 비트 및 오류
- 18. Java Win WX 및 Win Vista
- 19. Vista Home Premium IIS 7.0 및 asp.net
- 20. XP, Vista 및 7 용 응용 프로그램
- 21. SQL Server 연결 및 Vista 64 비트?
- 22. x86 및 Vista 32 비트 호환성
- 23. Vista 및 Out-of-Process COM 서버
- 24. Vista & Cookies
- 25. VIsta 및 win7에서 예외없이 파일 및 디렉토리 이름을 반복적으로 가져옵니다.
- 26. Vista Shellview 도움말 버튼
- 27. Vista 사용자 계정 만들기
- 28. Windows Vista 탐색을위한 도구
- 29. WS_EX_LAYERED colorkey - Vista 문제
- 30. MS Vista의 ProgramData 폴더에서 가상화를 선택해야하는 이유는 무엇입니까?
내가 그는 S –
ERR로, 실제로 % ALLUSERSPROFILE %의 생각, 네, 맞습니다, 나는 –