C #에서 홈 디렉토리의 경로를 얻었습니까?
좋아, Environment. SpecialFolder를 확인했지만 여기에는 아무것도 없습니다.
C #에서 현재 사용자의 홈 디렉터리를 싶습니다. (예 c:\documents and settings\user
: XP, c:\users\user
Vista, /home/user
Unix)
나는 이것을 가지고 찾기 위해 변수를 사용할 수 있습니다.
.NET (가급적이면 mscorlib 사용) 으로이 작업을 수행 할 수있는 방법이?
업데이트 : 좋아, 이것이 내가 공장 코드입니다.
string homePath = (Environment.OSVersion.Platform == PlatformID.Unix ||
Environment.OSVersion.Platform == PlatformID.MacOSX)
? Environment.GetEnvironmentVariable("HOME")
: Environment.ExpandEnvironmentVariables("%HOMEDRIVE%%HOMEPATH%");
Environment.SpecialFolder.Personal
실제로 홈 폴더를 반환하지 않고 내 문서 폴더를 반환 합니다. Win32에서 홈 폴더를 얻는 가장 안전한 방법은 %HOMEDRIVE%%HOMEPATH%
. 환경 변수를 읽기 포스터 싶어 왜 확실하지 않다, 그래서 실제로 (유닉스와 윈도우를 통해) 할 매우 새로운 것이 없습니다 .
추가 편집 : 크로스 플랫폼 (Windows / Unix) C #의 경우 $HOME
Unix 및 OSX 및 %HOMEDRIVE%%HOMEPATH%
Windows에서 읽었습니다 .
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)
개인은 내 문서 (또는 win7 이상의 문서)입니다.
나는 당신이 찾고있는 것이 믿습니다.
System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal)
참고로 mscorlib
.
DotNetCore 1.1 System.Environment.SpecialFolder
에는 존재하지 않습니다. 2.0 베타에 적합한 수 있습니다. 그때까지 이렇게 다음을 사용할 수 있습니다.
var envHome = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "HOMEPATH" : "HOME";
var home = Environment.GetEnvironmentVariable(envHome);`
결과는 아니오입니다. Windows와 Mono 모두에서 .NET 구현을 기대할 수있는 홈 디렉토리를 가져 오는 .NET의 단순한 시스템 기반 방법이 아닙니다.
일부 OS 감지를 수행하고 OS 특정 코드로 분기해야합니다.
크로스 플랫폼 방식이라고 할 때 지원해야하는 다른 OS는 무엇입니까? Windows가 아닌 OS에서 실행중인 경우 홈 디렉토리를 찾는 방법을 선택 몇 가지 간단한 OS 감지를 수행 할 수 있습니다.
이 웹 사이트 는 Windows에서 필요한 작업을 수행하는 방법을 제공하는 것입니다.
GetEnvironmentVariable
에서 사용하여 수행 할 수 있습니다 System.IO
.
public string GetUserHome() {
var homeDrive = Environment.GetEnvironmentVariable("HOMEDRIVE");
if (!string.IsNullOrWhiteSpace(homeDrive))
{
var homePath = Environment.GetEnvironmentVariable("HOMEPATH");
if (!string.IsNullOrWhiteSpace(homePath))
{
var fullHomePath = homeDrive + Path.DirectorySeparatorChar + homePath;
return Path.Combine(fullHomePath, "myFolder");
}
else
{
throw new Exception("Environment variable error, there is no 'HOMEPATH'");
}
}
else
{
throw new Exception("Environment variable error, there is no 'HOMEDRIVE'");
}
}
그런 다음 창 아래에 생성됩니다. C:\\\\Users\\myusername\\myFolder
사용하는 경우
var fullHomePath = Path.Combine(homeDrive.ToString(), homePath.ToString())
다음을 생성하기 때문에 실패합니다. \\Users\\myusername\\myFolder
나는 그것을 테스트 할 기계가 없지만 %HOMESHARE%
당신을 위해 일할 수 있습니다. 그렇지 않으면 여기에 꽤 좋은 환경 변수 목록이 있습니다 .
참고 URL : https://stackoverflow.com/questions/1143706/getting-the-path-of-the-home-directory-in-c
'IT' 카테고리의 다른 글
Assembly.GetTypes () 호출시 ReflectionTypeLoadException을 방지하는 방법 (0) | 2020.09.01 |
---|---|
TFS 체크인을 롤백 어떻게하면됩니까? (0) | 2020.09.01 |
IntelliJ의 "파일에서 찾기"를 생성 한 파일을 무시해야합니까? (0) | 2020.09.01 |
자체 CSS 이미지 크기 조정 비율? (0) | 2020.09.01 |
응답에서 이미지를 반환하는 방법은 무엇입니까? (0) | 2020.09.01 |