현재 사용자의 임시 폴더 확인
질문:
System.IO를 사용할 때. Path.GetTempPath()를 사용하여 임시 폴더 경로를 검색하면 불일치가 관찰됩니다. 현재 사용자의 임시 폴더를 받는 것과 시스템의 임시 폴더를 받는 것 사이. 현재 사용자의 임시 폴더 경로를 구체적으로 제공하는 대체 방법이 있습니까?
답변:
GetTempPath() 함수 이해:
System.IO.Path.GetTempPath()는 네이티브에 대한 래퍼입니다. Kernel32의 GetTempPath() 함수. MSDN에 따르면 이 함수는 다음 순서로 환경 변수의 우선 순위를 지정합니다.
문제 해결 불일치:
TMP, TEMP 또는 USERPROFILE 변수 중 하나가 Windows 경로, 특히 임시 디렉터리를 가리키는 경우 임시 폴더 경로의 불일치가 발생할 수 있습니다.
대체 접근 방식:
단지 제공하는 특정 API는 없지만 현재 사용자의 임시 폴더 경로를 구성하려면 앞서 설명한 환경 변수를 활용하여 구성할 수 있습니다.
코드 샘플:
string userTempPath; // Check the USERPROFILE variable first if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("USERPROFILE"))) { userTempPath = Path.Combine(Environment.GetEnvironmentVariable("USERPROFILE"), "Local Settings", "Temp"); } // Check the TMP/TEMP variables if USERPROFILE is not defined or valid else { string tempVar = Environment.GetEnvironmentVariable("TMP"); if (string.IsNullOrEmpty(tempVar)) { tempVar = Environment.GetEnvironmentVariable("TEMP"); } if (!string.IsNullOrEmpty(tempVar) && Directory.Exists(tempVar)) { userTempPath = tempVar; } } if (!string.IsNullOrEmpty(userTempPath)) { // At this point, userTempPath should contain the current user's temporary folder path }
위 내용은 C#에서 현재 사용자의 임시 폴더 경로를 안정적으로 가져오려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!