如何用C++获取Windows中可执行文件所在的网络共享路径
获取C++可执行文件所在的网络共享路径
我需要通过C++代码获取当前可执行文件所在文件夹的网络共享路径——也就是Windows系统中右键点击文件夹,选择「属性」后进入「共享」标签页看到的那种共享路径。
请问如何修改我提供的代码,让它返回这种网络共享路径,而不是本地路径?
以下是最小复现代码:
#include <iostream> #include <Windows.h> #include <sstream> #include <shlwapi.h> #include <string> #pragma comment(lib, "netapi32.lib") #pragma comment(lib, "Shlwapi.lib") using namespace std; std::wstring GetExecutableDirectory() { // 获取可执行文件的完整路径 wchar_t buffer[MAX_PATH]; GetModuleFileName(NULL, buffer, MAX_PATH); // 移除路径中的文件名,保留目录 PathRemoveFileSpec(buffer); return std::wstring(buffer); } int main() { std::wstring localPath = GetExecutableDirectory(); // 此处需要添加代码来获取网络共享路径 //.... wcout << L"Local path: " << localPath << endl; wcout << L"Network-share path: "; return 0; }
我的开发环境是Visual Studio 2022,操作系统为Windows 11。作为C++新手,我已经尝试过以下方法但都没成功:
- 使用
WNetGetUniversalName函数实现路径转换 - 确认本地路径存在且能被代码正确识别
- 检查目标文件夹的共享权限(已设置为所有人可共享)
- 直接运行可执行文件,而非通过VS调试器启动
内容的提问来源于stack exchange,提问作者Kasi74
相关产品推荐
相关产品推荐

