programing

현재 사용자의 임시 폴더를 가져오는 방법

batch 2023. 5. 6. 14:12
반응형

현재 사용자의 임시 폴더를 가져오는 방법

현재 사용자의 임시 폴더 경로를 가져오기 위해 다음 기능을 사용하고 있습니다.

string tempPath = System.IO.Path.GetTempPath();

일부 컴퓨터에서는 다음과 같은 현재 사용자의 임시 폴더 경로를 제공합니다.

C:\문서 및 설정\관리자\로컬 설정\온도\

일부 컴퓨터에서는 다음과 같은 시스템 임시 폴더 경로를 제공합니다.

C:\Windows\TEMP

MSDN Documentation은 또한 위의 API가 현재 시스템의 임시 폴더를 반환한다고 말합니다.

다음과 같은 현재 사용자의 임시 폴더 경로를 제공하는 다른 API가 있습니까?

C:\문서 및 설정\관리자\로컬 설정\온도\

System.IO.Path.GetTempPath()에 대한 네이티브 통화의 포장지일 뿐입니다.GetTempPath(..)커널32에서.

http://msdn.microsoft.com/en-us/library/aa364992(VS.85).aspx 을 살펴보십시오.

해당 페이지에서 복사됨:

GetTempPath 함수는 다음 순서로 환경 변수의 존재를 확인하고 발견된 첫 번째 경로를 사용합니다.

  • TMP 환경 변수에 의해 지정된 경로입니다.
  • TEMP 환경 변수에 의해 지정된 경로입니다.
  • USERPROFILE 환경 변수에 의해 지정된 경로입니다.
  • 윈도우즈 디렉터리.

"Windows 디렉토리"가 Windows 아래의 임시 디렉토리를 의미하는지 아니면 Windows 디렉토리 자체를 의미하는지는 잘 모르겠습니다.윈도우즈 디렉터리에 임시 파일을 덤프하는 것 자체가 바람직하지 않은 경우처럼 들리지만, 누가 알겠어요.

따라서 이 페이지를 당신의 게시물과 결합하면 관리자 사용자에 대한 TMP, TEMP 또는 USERPROFILE 변수 중 하나가 창 경로를 가리키거나, 그렇지 않으면 설정되지 않고 창 임시 경로로 폴백됩니다.

사용하지 마십시오.

System.Environment.GetEnvironmentVariable("TEMP")

환경 변수를 재정의할 수 있으므로,TEMP변수가 반드시 디렉터리일 필요는 없습니다.

올바른 방법은 다음을 사용하는 것입니다.System.IO.Path.GetTempPath()인정된 회답과 같이

환경 내에 존재해야 하는 특정 루트 디렉터리에 로그를 저장해야 합니다.

public static readonly string DefaultLogFilePath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);

하위 디렉터리와 결합하려면 다음을 사용할 수 있어야 합니다.Path.Combine( ... ).

GetFolderPath메서드에는 지정된 경로를 만들 것인지 아니면 단순히 확인할 것인지를 제어할 수 있는 특수 폴더 옵션에 대한 오버로드가 있습니다.

언급URL : https://stackoverflow.com/questions/944483/how-to-get-temporary-folder-for-current-user

반응형