2009-05-27 34 views
32

1) làm thế nào tôi có thể tìm ra ổ đĩa cài đặt Windows mà người dùng đang làm việc.? Tôi cần điều này để điều hướng đến ApplicationData trong DocumentsandSettings.Làm cách nào để có được đường dẫn của thư mục "Dữ liệu ứng dụng" của người dùng hiện tại?

2) Ngoài ra, làm cách nào để tôi có thể nhận được tên người dùng để tôi có thể goto ApplicaitionData.? Ví dụ: "D: \ Documents and Settings \ user \ Application Data".

Trả lời

4

Có một cái nhìn tại Environment.SpecialFolders

Environment.SpecialFolder.ApplicationData; 
Environment.SpecialFolder.System 

rằng nên giúp bạn có được vòng yêu cầu tên người dùng như tốt.

2

Hãy thử điều này:

string filePath = Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData); 
3

Hãy nhìn vào lớp System.Environment và tài sản và phương pháp của nó, ví dụ:

string systemDir = System.Environment.SystemDirectory; 
string docs = System.Environment.GetFolderPath(
    System.Environment.SpecialFolder.MyDocuments)); 

string systemDrive = System.IO.Path.GetPathRoot(systemDir); 

Người đầu tiên trả về "C: \ Windows \ system32 "chẳng hạn và số thứ hai" C: \ Documents and Settings \ USERNAME \ My Documents ".

14

Tùy thuộc vào những gì bạn đang làm, bạn cũng có thể muốn nhìn vào

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) 

Nếu người dùng là trên một tên miền nó sẽ chỉ được lưu trữ trong thư mục AppData địa phương của họ và không đồng bộ hóa với roaming profile của họ.

+0

Cảm ơn bạn, chính xác tình huống tôi cần giải quyết. Những thứ tôi cần thực sự là trong AppData/Local và không phải AppData/Roaming, được trả về theo mặc định bởi cuộc gọi này – PandaWood

0

1) làm thế nào tôi có thể tìm ra ổ đĩa cài đặt Windows trong đó người dùng đang hoạt động.?

var systemDrive = Environment.ExpandEnvironmentVariables("%systemdrive%"); 

tôi cần điều này để điều hướng đến ApplicationData trong DocumentsandSettings.

Bạn không thực sự yêu cầu tìm nạp giá trị của ổ đĩa hệ thống hoặc tên người dùng hiện đã đăng nhập để đạt được điều này. Có biến môi trường được xác định trước %localAppData%%appData% mà cung cấp cho bạn đầy đủ đường dẫn của các thư mục như trong đoạn code dưới đây:

var localApplicationData = Environment.ExpandEnvironmentVariables("%localappdata%"); 
//this gives C:\Users\<userName>\AppData\Local 

var roamingApplicationData = Environment.ExpandEnvironmentVariables("%appdata%"); 
//this gives C:\Users\<userName>\AppData\Roaming 

2) Cũng như thế nào tôi có thể lấy tên người dùng quá để tôi có thể goto ApplicaitionData.? Ví dụ: "D: \ Documents and Settings \ user \ Application Dữ liệu".

Một lần nữa, bạn không cần tên người dùng để có được đường dẫn dữ liệu ứng dụng như tôi đã thảo luận ở trên.Tuy nhiên, vì lợi ích của kiến ​​thức bạn có thể tìm nạp nó từ biến môi trường %username% như được hiển thị bên dưới:

var currentUserName = Environment.ExpandEnvironmentVariables("%username%"); 
Các vấn đề liên quan