Được rồi, tôi đã kiểm tra Environment.SpecialFolder, nhưng không có gì trong đó cho điều này.Lấy đường dẫn của thư mục chính trong C#?
Tôi muốn nhận thư mục chính của người dùng hiện tại trong C#. (ví dụ: c:\documents and settings\user
trong XP, c:\users\user
trong Vista và /home/user
trong Unix.)
Tôi biết tôi có thể đọc các biến môi trường để tìm ra điều này, nhưng tôi muốn thực hiện điều này theo cách đa nền tảng.
Có cách nào tôi có thể làm điều này với .NET (tốt nhất là sử dụng mscorlib)?
CẬP NHẬT: Được rồi, đây là mã tôi đã kết thúc bằng:
string homePath = (Environment.OSVersion.Platform == PlatformID.Unix ||
Environment.OSVersion.Platform == PlatformID.MacOSX)
? Environment.GetEnvironmentVariable("HOME")
: Environment.ExpandEnvironmentVariables("%HOMEDRIVE%%HOMEPATH%");
BOOM. Súng nhanh nhất ở phía tây: P –
Dunno về máy của bạn, nhưng trên hộp XP của tôi% HOMEDRIVE %% HOMEPATH% là một thư mục mạng, không phải c: \ Documents and Settings \ user \ MSalters \ – MSalters
Thành thật mà nói, tôi xem xét chính xác điều này vấn đề là một underimplementation của .NET ... bạn nên xem tài liệu hướng dẫn cho CSIDLS (http://msdn.microsoft.com/en-us/library/bb762494.aspx) để xem danh sách đầy đủ những gì Windows hỗ trợ: Những gì bạn đang thực sự tìm kiếm là CSIDL_PROFILE, được hỗ trợ trong Windows, nhưng không phải bởi .NET vì một số lý do không thể hiểu được. –