windows 폴더를 얻어올때 주의 사항

1)  GetWindowsDirectory
가장 많이 사용하는 API 입니다.
그런데 아래에도 나오지만 윈도우 서버 운영체제에서는 우리가 원하는 c:\windows를 리턴하지 않고 다른 경로를 리턴합니다.^^;;

2) GetSystemWindowsDirectory
이 API는 API는 하위 호환을 위해서 남은 것입니다.
(This function is provided primarily for compatibility)

3) SHGetFolderPath
MSDN에서는 ShGetFolderPath를 사용할것을 권장합니다.
(Applications should store code in the Program Files folder and persistent data in the Application Data folder in the user’s profile. For more information, see ShGetFolderPath.)

Remark

터미널 서비스를 사용하는 운영체제에서는 GetWindowsDirectory는 각각의 사용자마다 윈도우 디렉토리를 다르게 리턴합니다. GetSystemWindowsDirectory 를 사용해야지만 시스템 윈도우 디렉토리를 리턴합니다.

On a system that is running Terminal Services, each user has a unique Windows directory. The system Windows directory is shared by all users, so it is the directory where an application should store initialization and help files that apply to all users.
With Terminal Services, the GetSystemWindowsDirectory function retrieves the path of the system Windows directory, while the GetWindowsDirectory function retrieves the path of a Windows directory that is private for each user. On a single-user system, GetSystemWindowsDirectory is the same as GetWindowsDirectory.

즉, 윈도우 2000 터미널 서비스에서 동작하는 프로그램을 개발할 때에는 GetSystemWindowsDirectory  API를 사용해야 합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다