windows - 获取本地我的文档文件夹路径

标签 windows winapi

在我的 C++/WinAPI 应用程序中,我使用以下代码获取我的文档文件夹路径:

wchar_t path[MAX_PATH];
SHGetFolderPathW(NULL,CSIDL_PERSONAL,NULL,SHGFP_TYPE_CURRENT,path);

其中一个用户在连接到他的公司网络的电脑上运行我的程序。他在网络上有我的文档文件夹。所以我的代码返回类似 \\paq\user.name$\我的文档 尽管他说他有一份“我的文档”的本地副本。 问题是,当他“交换 VPN”时,在线我的文档变得不可用,我的程序崩溃并出现系统错误代码 64“指定的网络名称不再可用”(它尝试写入在在线我的文件中打开的文件文档文件夹)。

如何使用 C++/WinAPI 始终获取本地“我的文档”文件夹路径?

最佳答案

CSIDL_PERSONAL 是唯一的官方“我的文档”文件夹。如果他将其重定向到网络文件夹,那么即使 Windows 在关闭 VPN 时也无法访问“我的文档”。与各种 AppData 文件夹(CSIDL_APPDATACSIDL_COMMON_APPDATACSIDL_LOCAL_APPDATA)不同,Windows 没有单独的本地和远程“我的文档”文件夹的概念,所以无论他有什么本地文件夹都必须手动创建为普通文件夹,因此 Shell API 不会知道它。您的应用找到它的唯一方法是询问它在哪里。

关于windows - 获取本地我的文档文件夹路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13213959/

相关文章:

windows - 如何检测 Windows 终端服务器是否处于安装模式

java - 带有嵌入斜杠的奇怪文件名 - Mac/Windows 冲突

c++ - 如何测试主存访问时间?

windows - 如果从静态库调用,Atl CDialogImpl 不会显示在 DoModal 上

winapi - 如何在Windows中按名称获取文件时间?

c++ - 进程保留在应用程序退出时

windows - CosmosDB 模拟器无法启动,因为端口已被使用

windows - 如何为 ReadFileEx() 的完成例程提供上下文信息?

python - 在 python 中监视显示状态?

python - Win32api 没有在 python 中使用 GetCursorPos() 给出正确的坐标