GetFields()枚举类型时,我得到一个类型为int32的额外字段.它从哪里来的?? (GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static) ),它返回所需的字段.这是否意味着枚举的字段不是公共的? 谢谢
我正在调用NetApi32.dll方法NetUseAdd。
这是这样的:
USE_INFO_2 useinfo = new USE_INFO_2();
useinfo.ui2_remote = UNCPath;
useinfo.ui2_username = User;
useinfo.ui2_domainname = Domain;
useinfo.ui2_password = Password;
useinfo.ui2_asg_type = 0;
useinfo.ui2_usecount = 1;
uint paramErrorIndex;
returncode = NetUseAdd(null, 2, ref useinfo, out paramErrorIndex);
Run Code Online (Sandbox Code Playgroud)
调用useinfo.ui2_remote = \\servername\dirname时返回代码67,调用useinfo.ui2_remote = \\servername\dirname\时返回代码87。
当我说它返回代码时...我的意思是要么抛出异常并Marshal.GetLastWin32Error()返回此错误代码,要么实际调用NetUseAdd返回它。
奇怪的是,此方法在使用没有 dub-folders 的路径调用时成功,而在使用具有子文件夹的路径调用时失败。
调用计算机是Windows Server 2008,而远程计算机是linux服务器(我不确定是哪个版本或发行版)。
知道如何才能成功连接\使用远程资源而不必担心子文件夹问题吗?
编辑:
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
internal struct USE_INFO_2
{
internal LPWSTR ui2_local;
internal LPWSTR ui2_remote;
internal LPWSTR ui2_password; …Run Code Online (Sandbox Code Playgroud)