Unix에서의 GetFolderPath 동작
.NET 8부터 Unix 운영 체제에서 Environment.GetFolderPath의 동작이 변경되었습니다.
변경 내용 설명
다음 표에서는 다양한 특수 폴더에 대해 각 Unix 운영 체제에 대해 반환된 경로 값이 어떻게 변경되는지 보여 줍니다.
Linux
SpecialFolder 값 | 경로(.NET 7 및 이전 버전) | 경로(.NET 8 및 이후 버전) |
---|---|---|
MyDocuments |
$HOME |
사용 가능한 경우 XDG_DOCUMENTS_DIR 을 사용하고, 그렇지 않으면 $HOME/Documents 사용 |
Personal |
$HOME |
사용 가능한 경우 XDG_DOCUMENTS_DIR 을 사용하고, 그렇지 않으면 $HOME/Documents 사용 |
macOS
SpecialFolder 값 | 경로(.NET 7 및 이전 버전) | 경로(.NET 8 및 이후 버전) |
---|---|---|
MyDocuments |
$HOME |
NSDocumentDirectory($HOME/Documents ) |
Personal |
$HOME |
NSDocumentDirectory($HOME/Documents ) |
ApplicationData |
$HOME/.config |
NSApplicationSupportDirectory(라이브러리/애플리케이션 지원) |
LocalApplicationData |
$HOME/.local/share |
NSApplicationSupportDirectory(라이브러리/애플리케이션 지원) |
MyVideos |
$HOME/Videos |
NSMoviesDirectory($HOME/Movies ) |
Android
SpecialFolder 값 | 경로(.NET 7 및 이전 버전) | 경로(.NET 8 및 이후 버전) |
---|---|---|
MyDocuments |
$HOME |
$HOME/Documents |
Personal |
$HOME |
$HOME/Documents |
도입된 버전
.NET 8 미리 보기 1
호환성이 손상되는 변경의 형식
이 변경 사항은 동작 변경입니다.
변경 이유
이전 동작은 잘못되었으며 Linux, macOS 및 Android에 대한 사용자 기대치를 충족하지 못했습니다.
권장 작업
가장 일반적인 중단은 Unix에서 System.Environment.SpecialFolder.Personal을 Environment.GetFolderPath(Environment+SpecialFolder)에 전달하여 $HOME
디렉터리(Environment.GetFolderPath(Environment.SpecialFolder.Personal)
)를 가져오는 경우에 발생합니다. Environment.SpecialFolder.Personal 및 Environment.SpecialFolder.MyDocuments는 동일한 기본 열거형 값에 대한 별칭입니다. 이러한 방식으로 Environment.SpecialFolder.Personal을 사용하는 경우 코드를 변경하여 Environment.SpecialFolder.UserProfile을 대신 전달합니다(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)
).
다른 중단의 경우 권장되는 작업은 다음 중 하나를 수행하는 것입니다.
- 애플리케이션의 파일을 적절한 디렉터리로 마이그레이션합니다.
- 코드에 이전 위치에 대한 대체 검사를 추가합니다.
영향을 받는 API
.NET
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기