You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 01:57:38