2012-03-14 46 views
32

Trên hệ thống của tôi, %AppData% dẫn đến ApplicationData đó là C:\Users\<USER>\AppData\RoamingSự khác nhau giữa 'SpecialFolder.LocalApplicationData' và 'SpecialFolder.ApplicationData'?

Nhưng cũng có C:\Users\<USER>\AppData\Local
Và đối với một số nhầm lẫn hơn D:\Users\<USER>\AppData\LocalLow

string local = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); 
string roaming = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 

Câu hỏi của tôi là, nên ứng dụng của tôi tiết kiệm mà các địa điểm này dữ liệu của nó?

Có hướng dẫn nào để sử dụng những địa điểm này không? Và tôi có để bản thân mình gặp vấn đề nếu tôi chọn sai vị trí không?

+0

Thư mục chuyển vùng thường được sử dụng để lưu trữ dữ liệu. Tôi không biết sự khác biệt thực sự. –

Trả lời

44

Thư mục Roaming được sao chép giữa các máy khi bật cấu hình chuyển vùng (trong môi trường tên miền). Sử dụng nó cho dữ liệu ứng dụng mà bạn muốn chia sẻ giữa các máy. Nhưng đừng lưu trữ các tệp lớn trong đó - các phòng CNTT không thích nó khi bạn làm điều đó, và nó làm tăng thời gian để người dùng đăng nhập và đăng xuất khi các tệp được sao chép xung quanh.

Thư mục Local không được sao chép giữa các máy. Sử dụng nó cho dữ liệu ứng dụng dành riêng cho máy.

Thư mục LocalLow được sử dụng cho các tác vụ đặc quyền thấp (chẳng hạn như Internet Explorer). Bạn không cần phải lo lắng về nó.

Đối với các tệp mà người dùng lưu cụ thể, bạn nên đặt chúng (theo mặc định) trong thư mục Documents.

+1

Bất kỳ suy nghĩ nào về cách các thư mục này được sử dụng cho người dùng Windows 8 được đăng nhập vào máy bằng tài khoản Microsoft?Là một ứng dụng Windows 8 chỉ là một con thú hoàn toàn khác nhau, với các API riêng của nó, vv, và các thư mục được sử dụng khác nhau/trung gian bởi một API? Người dùng Windows 8 có đăng nhập bằng tài khoản MS là "người dùng chuyển vùng" không? – Bill

9

Theo MSDN sự khác biệt là LocalApplicationData lưu trú vào máy tính cục bộ và không chạy lung tung ... ApplicationData không đi lang thang ví dụ nếu người dùng đăng vào miền từ một máy tính khác nhau nó sẽ được đồng bộ hóa ...

Các LocalLow đề cập đến các tình huống cụ thể thích BHO chạy trong "Chế độ được bảo vệ" của IE ...

Đối với ứng dụng chuẩn luôn sử dụng ApplicationData. Sử dụng LocalApplicationData cho những thứ KHÔNG được đi lang thang với người dùng ...

1

Từ MSDN - Environment.SpecialFolder Enumeration:

ApplicationData - Thư mục phục vụ như là một kho lưu trữ chung cho dữ liệu ứng dụng cụ thể cho người dùng di động hiện nay. Người dùng chuyển vùng hoạt động trên nhiều máy tính trên mạng. Hồ sơ người dùng chuyển vùng được lưu trên máy chủ trên mạng và được tải lên hệ thống khi người dùng đăng nhập.

LocalApplicationData Thư mục đóng vai trò như một kho lưu trữ chung cho dữ liệu ứng dụng cụ thể được sử dụng bởi người dùng hiện tại, không chuyển vùng.

Tóm lại, sử dụng ApplicationData cho cấu hình chuyển vùng và LocalApplicationData cho cấu hình không chuyển vùng.

Các vấn đề liên quan