C# 2008 SP1C# nhận được đường đi của% AppData%
Tôi đang sử dụng mã bên dưới:
dt.ReadXml("%AppData%\\DateLinks.xml");
Tuy nhiên, tôi nhận được một ngoại lệ trỏ đến vị trí của nơi ứng dụng của tôi đang chạy từ:
không thể tìm thấy một phần của đường dẫn 'D: \ Projects \ SubVersionProjects \ CatDialer \ bin \ Debug \% AppData% \ DateLinks.xml'.
Tôi nghĩ rằng %AppData%
nên tìm đường dẫn tương đối. Khi tôi đi Start|Run|%AppData%
windows explorer đưa tôi đến thư mục đó.
Tôi không thể đặt đường dẫn đầy đủ, vì người dùng khác nhau trên mỗi máy khách.
Rất cám ơn cho lời khuyên nào,
+1 để cung cấp giải pháp thực sự, không dựa vào môi trường. Để thêm vào câu trả lời: Không phải mọi chức năng xử lý tên tệp đều mở rộng các biến môi trường. Trong thực tế, thông thường bạn phải rõ ràng làm điều này, nếu không nó không hoạt động và bạn sẽ kết thúc với% something% folders. Hơn nữa, môi trường không cần phải có mặt, trong một số trường hợp khi chạy một chương trình trong một tài khoản người dùng khác, môi trường của người dùng sẽ không được tải và% Appdata% sẽ trống. Đó là lý do tại sao bạn muốn sử dụng các API được ghi lại để nhận các thư mục đó (trừ khi bạn đang sử dụng các tệp lô). – Joey
@Johannes: Thông tin tốt ở đó. Tôi chỉ sửa đổi câu trả lời của tôi khi bạn đăng bài đó, nhưng tôi sẽ làm cho nó rõ ràng hơn rằng GetFolderPath chắc chắn là thích hợp hơn ExpandEnvironmentVariable. – Noldorin
+1 cho môi trường.GetFolderPath (Environment.SpecialFolder.ApplicationData), tôi đã đứng sau này trong vài ngày nay. –