2009-10-02 23 views
18

Khi tạo một ứng dụng sẽ được nhắm mục tiêu đến nhiều phiên bản của Windows, cách tốt nhất để xác định nơi lưu trữ dữ liệu cụ thể của ứng dụng. Cụ thể là:Microsoft có tài liệu thực hành tốt nhất về việc lưu trữ Dữ liệu ứng dụng và Dữ liệu người dùng trên các nền tảng Windows khác nhau không?

  • Application Data cụ thể (ví dụ như dữ liệu ứng dụng config)
  • tài cụ thể dữ liệu/Settings

Tôi biết trên Windows Vista ví dụ có những biến môi trường, như% APPDATA%, mà có thể được sử dụng, nhưng những gì về Windows 7, Windows XP, Windows 98.

Câu hỏi chính của tôi là, Microsoft có một tài liệu thực hành tốt nhất cho điều này, nêu rõ vị trí hệ thống tệp cho các loại dữ liệu khác nhau (ứng dụng so với người dùng) và các tác động an ninh t mũ cần phải được lưu ý khi đọc/ghi vào các địa điểm này?

Tôi cũng quan tâm đến cách điều này liên quan đến không chỉ các ứng dụng .NET (nơi mà ApplicationSettingsBase có thể được sử dụng) mà còn trong các ứng dụng C/C++ không được quản lý.

Nhờ Pax và Remus cho cả hai câu trả lời tuyệt vời. tôi đã tìm thấy mặt hàng này cũng như (cụ thể đối với XP):

How to write a Windows XP Application that stores user and application data in the correct location by using Visual C++

Trả lời

8

Có một mô tả tốt here trong những giá trị CSIDL khác nhau và các thư mục họ đề cập đến (bao gồm mô tả mà hy vọng sẽ cho bạn biết những gì bạn cần phải biết rằng).

Nó cũng chứa các liên kết đến các chức năng bạn nên sử dụng để truy xuất các đường dẫn thư mục đặc biệt này.

Lưu ý rằng, như của Vista, phương pháp đã thay đổi một chút. Nó hiện sử dụng KNOWNFOLDERID thay vì CSIDL và các chức năng cũng đã thay đổi. Xem here.

Bạn vẫn có thể sử dụng các chức năng cũ hơn (tại thời điểm này) vì tôi tin rằng chúng hiện chỉ là trình bao bọc xung quanh các chức năng mới. Tại một số thời điểm trong tương lai, điều đó có thể thay đổi.

8

Chúng thường được mô tả trong số Windows Software Logo Program (link broken). Liên kết đến tài liệu yêu cầu logo Windows 7, nhưng các tài liệu tương tự tồn tại cho XP, Windows 2003, Vista và Windows 2008. Trong phần Yêu cầu kỹ thuật, bạn sẽ tìm thấy một số thông tin bạn đang tìm kiếm:

Tất cả các dữ liệu ứng dụng đó phải được chia sẻ giữa người sử dụng trên máy tính nên được lưu trữ trong ProgramData

Tất cả các dữ liệu ứng dụng độc quyền cho một người dùng cụ thể và không được chia sẻ với những người dùng khác của máy tính phải được lưu trữ trong Users\<username>\AppData

Trong bản cài đặt “trên mỗi máy”, người dùng dữ liệu phải được viết lúc chạy đầu tiên và không trong khi cài đặt. Đây là vì không có người dùng chính xác vị trí để lưu trữ dữ liệu tại thời điểm cài đặt.

EDIT:

Windows 10 người dùng, tìm kiếm các Certification requirements for Windows Desktop Apps (Section 10)