如何获取应用数据路径
How to get the AppData path
SHGetSpecialFolderPathA(NULL,buffer, CSIDL_APPDATA,FALSE );
C:UsersguestAppDataRoaming
SHGetSpecialFolderPathA(NULL,buffer, CSIDL_LOCAL_APPDATA,FALSE );
C:UsersguestAppDataLocal
有没有办法使用Windows API获取路径C:UsersguestAppData
?
漫游和本地文件夹的存在是有原因的,有时您可能需要在配置文件的根目录中放置一些东西,但您实际上不应该这样做。以下是 MSDN 对CSIDL_PROFILE的评价:
应用程序不应在此级别创建文件或文件夹;它们 应将其数据放在CSIDL_APPDATA引用的位置下 或CSIDL_LOCAL_APPDATA。但是,如果您正在创建新的已知 文件夹 CSIDL_PROFILE 引用的配置文件根目录是合适的。
在NT5上,它们甚至没有相同的父文件夹,并且"漫游"位于配置文件的根目录中:
C:Documents and SettingsusernameApplication Data
C:Documents and SettingsusernameLocal SettingsApplication Data
用户和/或域管理员可以将这些文件夹移动和/或重定向到任何位置,即其他驱动器或网络共享的根目录。
我能想到的唯一记录在案的查找父级方法是使用 IKnownFolderManager::GetFolder,然后调用IKnownFolder::GetFolderDefinition
并查看KNOWNFOLDER_DEFINITION.fidParent
(请记住,不必有父级,IKnownFolderManager::Redirect 将字符串作为目标,因此重定向文件夹可以在任何地方(
如果要排除特殊shell文件夹下的文件,则应将路径与PathCommonPrefix 或IKnownFolderManager::FindFolderFromPath之类的内容进行比较。
相关文章:
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 如何在不破坏现有应用程序的情况下更改 API 中 stl 容器的数据类型?
- 在 1 个服务器 n 客户端套接字 C++ MFC 应用程序中更新数据的客户端
- 错误: 无效使用非静态数据成员"应用程序::应用程序构造函数"
- 在数据帧上应用 Rcpp
- 更改应用程序数据的路径
- 使用 pipe() 和 fdopen() 将数据从 Python 脚本传递到 Windows 中的C++应用程序
- CMake导出的库-在客户端应用程序中找不到include/Lib路径
- 将数据从一个应用程序单向发送到另一个应用程序的最佳做法
- 从 Windows 中的其他应用程序 GUI 中提取数据
- 无法使用管道将数据发送到我通过exec(C++)启动的第二个应用程序
- 在网格视图中显示数据 - 基于 MFC c++ 对话框的应用程序
- 按名称问题获取卸载应用程序路径
- QT MAC应用程序存储数据路径
- 在UWP中获取fopen()的应用程序路径
- 在应用程序末尾获取不带应用程序名称的应用程序路径
- C++ 将文件下载到应用数据
- 获取dll中的应用程序路径
- 如何在 Linux 上获取运行应用程序路径
- 如何获取应用数据路径