2012-06-25 31 views
10

Ứng dụng của tôi cần cài đặt một số tệp có thể được chỉnh sửa bởi ứng dụng tại thời gian chạy. Cài đặt khiên cung cấp một bí danh [CommonAppDataFolder] sẽ giải quyết thành c: \ programData trên Vista và Windows 7 và cũng sẽ hoạt động trên Windows XP. Có một chức năng win32 mà sẽ trở lại một con đường tương tự?Chức năng Win32 để có đường dẫn đến C: ProgramData

Có lẽ tôi cần gọi các chức năng khác nhau tùy thuộc vào hệ điều hành?

Trả lời

18

SHGetFolderPath/SHGetSpecialFolderPath giúp bạn, với đối số CSIDL_COMMON_APPDATA.

Xem đoạn mã ở đây (ở dưới cùng): How to write a Windows XP Application that stores user and application data in the correct location by using Visual C++.

  • Windows XP: C: \ Documents and Settings \ All Users \ Application Data
  • Windows Vista: C: \ ProgramData
  • Windows 7: C: \ ProgramData

Xem thêm: CSIDL.

+0

Dường như CSIDL_COMMON_APPDATA sẽ giải quyết thành: C: \ Documents and Settings \ Tất cả người dùng \ Application Data không có cách nào để lấy đường dẫn tới c: \ ProgramData? Đây có phải là nơi tốt để lưu trữ các loại tệp này không? – Mike2012

+1

@ Mike2012, cả hai đường dẫn đều phục vụ cùng một mục đích - một trên XP và dưới đây và một trên Vista và ở trên. Vì vậy, kết quả bạn nhận được phụ thuộc vào hệ điều hành bạn sử dụng. – eran

+1

Xem ở trên - các đường dẫn mẫu được thêm vào liên tục giải quyết trong các phiên bản Windows khác nhau –

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