2012-06-25 4 views
1

사용자 (일반적으로 C : \ Users)의 표준 폴더 (예 : C : \ xzy \ Users)를 변경할 수 있다는 것을 알고있는 한.프로그래밍 방식으로 C : Users 받기

사용자 디렉토리를 가져올 수 있습니까?

DefaultUser 디렉토리 경로를 가져 오는 방법이 있습니까?

나는 .NET 프레임 워크에서이 문제를 처리해야 3.5

편집 : 응용 프로그램이 %의 사용자 프로필의 %가 C 어딘가에 위치 할 서비스 사용자 (예 : 시스템)으로 실행되면 다른 문제가있다 : \ 나는이 질문을 생각 나게 뭔가를봤을 때 내가 뭔가 다른 일을했다 http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx

답변

2

당신은 볼 수 있습니다.

찾고 계신 데이터가 레지스트리에 저장되어 있습니다.

은 다음과 같이 읽어 :

(string)Registry.GetValue(
    @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList", 
    "ProfilesDirectory","") 

앱은 레지스트리를 읽을 수있는 충분한 권한이 필요합니다.

3
string userFolderpath = System.IO.Directory.GetParent 
(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).FullName; 

string userFolderParentPath = System.IO.Directory.GetParent(path).FullName ; 
+0

흠 .... Environment.SpecialFolder.ApplicationData가 % userprofile % \ appdata \ roaming으로 해석되기 때문에 이렇게하면 % userprofile % \ appdata가됩니다. % userprofile % 특수 폴더의 상위 폴더를 사용하지 않는 이유는 무엇입니까? – spender

+0

UserProfile은 3.5에서 사용할 수 없습니다 ... 다른 문제는 응용 프로그램이 서비스 사용자 (예 : 시스템)로 실행 중일 때 % userprofile %이 (가) C : \ Windows – mabstrei

+0

@mabstrei 어딘가에있을 것입니다. 대답. –

관련 문제