C#实现网络共享
2012-06-20 16:42
211 查看
using System; using System.Runtime.InteropServices; namespace ConApp { class RemoteShareDir { [DllImport("Netapi32.dll",CharSet=CharSet.Unicode)] private static extern uint NetShareAdd( [MarshalAs(UnmanagedType.LPWStr)] string strServer, Int32 dwLevel, ref SHARE_INFO_502 buf, out uint parm_err ); [DllImport("Netapi32.dll",CharSet= CharSet.Unicode )] private static extern uint NetShareDel(string host, string shareName, int reserved); public RemoteShareDir() { } public uint SetShareDir(string host, string dir, string shareName, string shareDesc) { SHARE_INFO_502 info = new SHARE_INFO_502(); info.shi502_netname = shareName; info.shi502_type = SHARE_TYPE.STYPE_DISKTREE; info.shi502_remark = shareDesc; info.shi502_permissions = 0; // ignored for user-level security info.shi502_max_uses = -1; info.shi502_current_uses = 0; // ignored for set info.shi502_path = dir; info.shi502_passwd = null; // ignored for user-level security info.shi502_reserved = 0; info.shi502_security_descriptor = IntPtr.Zero; uint error = 0; return NetShareAdd(host, 502, ref info, out error); } public uint DeleteShareDir(string host, string shareName) { return NetShareDel(host, shareName, 0); } private enum NetError : uint { NERR_Success = 0, NERR_BASE = 2100, NERR_UnknownDevDir = (NERR_BASE + 16), NERR_DuplicateShare = (NERR_BASE + 18), NERR_BufTooSmall = (NERR_BASE + 23), } private enum SHARE_TYPE : uint { STYPE_DISKTREE = 0, STYPE_PRINTQ = 1, STYPE_DEVICE = 2, STYPE_IPC = 3, STYPE_TEMPORARY = 0x40000000, STYPE_SPECIAL = 0x80000000, } [StructLayout(LayoutKind.Sequential)] private struct SHARE_INFO_502 { [MarshalAs(UnmanagedType.LPWStr)] public string shi502_netname; public SHARE_TYPE shi502_type; [MarshalAs(UnmanagedType.LPWStr)] public string shi502_remark; public Int32 shi502_permissions; public Int32 shi502_max_uses; public Int32 shi502_current_uses; [MarshalAs(UnmanagedType.LPWStr)] public string shi502_path; [MarshalAs(UnmanagedType.LPWStr)] public string shi502_passwd; public Int32 shi502_reserved; public IntPtr shi502_security_descriptor; } } }
相关文章推荐
- [C#][共享网络] Netsh命令实现共享,并查询连接用户
- C#实现访问网络共享文件夹
- C# 实现访问网络共享文件夹
- C# 实现访问网络共享文件夹
- [转]C#实现访问网络共享文件夹
- win7下添加microsoft loopback adapter实现virtualPC网络共享
- 网络刷投票.C#实现动态改ip
- 用C#下的Raw Socket编程实现网络封包监视
- 如何在C# 中使用WMI 实现远程查询和共享
- 用C#实现基于TCP协议的网络通讯(2)
- 用C#实现基于用C#实现基于TCP协议的网络通讯
- 用C#实现基于用C#实现基于TCP协议的网络通讯
- c#神经网络,实现对Iris数据集进行分类
- 软件实现的网络共享投影--SAGE的安装配置与使用
- C# 网络编程之最简单浏览器实现
- C#中利用Socket实现网络语音通信[初级版本]
- 开启win7的无线承载网络(软AP),实现网络共享
- [导入][转]用C#实现基于TCP协议的网络通讯
- C#使用sharppcap实现网络抓包
- ubuntu如何实现访问实际网络中windows共享文件夹