600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 对文件夹添加共享属性!

对文件夹添加共享属性!

时间:2022-11-23 16:21:48

相关推荐

对文件夹添加共享属性!

看到一段代码,谁写的忘了。请作者多多包含。

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_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;

}

[DllImport("Netapi32.dll")]

private static extern uint NetShareAdd(

[MarshalAs(UnmanagedType.LPWStr)] string strServer,

Int32 dwLevel,

ref SHARE_INFO_502 buf,

out uint parm_err);

public uint SetDirectoryShare(string path, 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;

info.shi502_max_uses = -1;

info.shi502_current_uses = 0;

info.shi502_path = path;

info.shi502_passwd = null;

info.shi502_reserved = 0;

info.shi502_security_descriptor = IntPtr.Zero;

uint error = 0;

return NetShareAdd(null, 502, ref info, out error);

}

第二种方法

using System.IO;

using System.Management;

private void CreateDirtory()

{

try

{

// create a directory

Directory.CreateDirectory(@"C:\Inetpub\wwwroot\Temp");

// Create a ManagementClass object

ManagementClass managementClass = new ManagementClass("Win32_Share");

// Create ManagementBaseObjects for in and out parameters

ManagementBaseObject inParams = managementClass.GetMethodParameters("Create");

ManagementBaseObject outParams;

// Set the input parameters

inParams["Description"] = "My Files Share";

inParams["Name"] = "My Files Share";

inParams["Path"] = @"C:\Inetpub\wwwroot\Temp";

inParams["Type"] = 0x0; // Disk Drive

// Invoke the method on the ManagementClass object

outParams = managementClass.InvokeMethod("Create", inParams, null);

// Check to see if the method invocation was successful

if((uint)(outParams.Properties["ReturnValue"].Value) != 0)

{

throw new Exception("Unable to share directory.");

}

}

catch(Exception e)

{

MessageBox.Show(e.Message.ToString());

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。