我正在尝试使用映射驱动器,WNetAddCOnnection2
但有些地方不太正确。我从pinvoke.net使用的代码一开始似乎可以工作。如果我单步执行代码,我会得到一个 0 作为响应,我可以System.IO.Directory.GetFiles()
用来检查新的映射驱动器,这让我相信凭据是好的。
问题是驱动器在应用程序之外不可用。当我net use
从命令提示符下键入时,我会看到这样列出的驱动器:
Unavailable L: \\<server>\<share> Microsoft Windows Network
当我尝试访问驱动器时,我得到:
The system cannot find the drive specified.
或者
The system cannot find the path specified.
任何帮助将不胜感激。
以下是相关代码的简要说明:
NETRESOURCE res = new NETRESOURCE();
res.iScope = RESOURCE_GLOBALNET;
res.iType = RESOURCETYPE_DISK;
res.iDisplayType = RESOURCEDISPLAYTYPE_SHARE;
res.iUsage = RESOURCEUSAGE_CONNECTABLE;
res.sRemoteName = share;
res.sLocalName = drive;
res.sProvider = null;
int iFlags = 0;
iFlags = CONNECT_UPDATE_PROFILE;
int iResult = WNetAddConnection2( ref res, psPassword, psUsername, iFlags );
iResult
总是最终等于 0 。