首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在调用ERROR_BAD_NET_NAME时解析WNetAddConnection2错误?

如何在调用ERROR_BAD_NET_NAME时解析WNetAddConnection2错误?
EN

Stack Overflow用户
提问于 2012-03-14 16:03:05
回答 1查看 5.9K关注 0票数 1

我仍然在努力解决我遇到的一个问题,the first part of it是我显然需要调用WNetAddConnection2才能使用CreateFile在网络共享中打开一个文件。

这样做后,我现在收到一个来自WNet.2呼叫的ERROR_BAD_NET_NAME返回。

远程资源是windows网络上的映射网络文件夹(我们所在的客户机是windows )。网络资源应该在启动时就连接起来,但是当然,假设这一点可能是不好的。该文件夹映射到本地Z:。我可以使用资源管理器从机器上的目标文件夹中访问、读取、写入和删除文件。

代码语言:javascript
运行
复制
HANDLE initFile ( LPCTSTR iNCfileName ) {
    DWORD dw;
    HANDLE fHandle=NULL;

    NETRESOURCE nr = {0}; //new structure for network resource
    nr.dwType = RESOURCETYPE_ANY; //generic resource (any type allowed)
    nr.lpLocalName = NULL; //does not use a device
    // typical iNCfileName is std::string a="Z:\\Documents\\somefile.txt".c_str()
    nr.lpRemoteName = (char*)iNCfileName;
    //"\\\\DOMAIN\\PATH\\FOLDER"; 
    nr.lpProvider = NULL; //no provider

    // CONNECT_CURRENT_MEDIA ??
    DWORD ret = WNetAddConnection2 (&nr, NULL, NULL, CONNECT_TEMPORARY); 

    //...

    return fHandle;
}

认为的问题是我不能使用Z:\Documents\somefile.txt,而应该使用\Z:\Documents\somefile.txt\路径\文件夹符号。如果是这样的话,我如何以编程方式获取这些信息,以便将其作为输入提供?我是否误解了原答复者,我可以将文件名转换为\\\\Z\\Documents\\somefile.txt?如果是这样的话,是否有资源来执行此操作,或者应该自己解析字符串?

EN

Stack Overflow用户

回答已采纳

发布于 2012-03-14 16:44:45

你说得对,为什么它不起作用。当您应该传递共享名(例如,Z:\Documents\somefile.txt)时,您正在传递本地文件名(例如\\myserver\sharename)。

如果共享已经连接到Z:,那么不需要调用WNetAddConnection2

如果共享尚未连接到Z:,则无法自动将Z:\Documents\somefile.txt转换为远程名称,因为Windows不知道Z:代表什么。

如果共享可能没有连接,那么您的程序需要事先知道共享Z:应该连接到什么,并建立连接本身。您可以将共享连接到Z:并使用现有路径,或者不使用驱动器号连接它,并自己调整路径;只需要用\\myserver\sharename\替换Z:\

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9705535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档