C#通过WMI操作本地共享文件夹
2010-11-09 14:16
253 查看
WMI是Windows Management Instrumentation的缩写。它提供能非常强大的功能,比如:主板、BIOS、内存、磁盘、网络等的操作。
详情参考:http://msdn.microsoft.com/en-us/library/aa384642(VS.85).aspx
这里只是备注一下如何操作本地共享文件夹。
共享文件夹大家都应该比较熟悉:共享音乐,电影,游戏,文档什么的给其他人使用。
非常简单的在Explorer里面就可以实现了,不过我常常是共享了一些文件夹,用完以后忘了取消共享。时间长了以后就忘了共享的文件夹具体是在什么地方了。而如果你直接删掉了共享的文件,而没有取消共享的话,其他人还是能看到看到这个文件夹,但是不能访问里面的内容了。
我就在想,windows就没有提供这个功能来取消共享文件夹或者找到共享文件夹的实际路径吗?可能是我不知道而已……
google了一下,发现可以通过WMI来获得共享文件的信息并取消共享
关于如何获得所有本地共享文件夹的代码:
pubilc const uint DISK_DRIVE = 0x0;
pubilc const uint PRINT_QUEUE = 0x1;
pubilc const uint DEVICE = 0x2;
pubilc const uint IPC = 0x3;
pubilc const uint DISK_DRIVE_ADMIN = 0x80000000;
pubilc const uint PRINT_QUEUE_ADMIN = 0x80000001;
pubilc const uint DEVICE_ADMIN = 0x80000002;
pubilc const uint IPC_ADMIN = 0x80000003;
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Share");
foreach (ManagementObject queryObj in searcher.Get())
{
uint type = uint.Parse(queryObj["Type"].ToString());
if (DISK_DRIVE != type)
{
continue;
}
FolderInformation info = new FolderInformation();
info.Name = queryObj["Name"].ToString();
info.Path = queryObj["Path"].ToString();
info.Description = queryObj["Description"].ToString();
folderList.Add(info);
}
取消共享也很简单
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Share WHERE Name = '" + sharingName + "'");
foreach (ManagementObject queryObj in searcher.Get())
{
uint type = uint.Parse(queryObj["Type"].ToString());
if (DISK_DRIVE != type)
{
continue;
}
queryObj.InvokeMethod("Delete", null, null);
}
详情参考:http://msdn.microsoft.com/en-us/library/aa384642(VS.85).aspx
这里只是备注一下如何操作本地共享文件夹。
共享文件夹大家都应该比较熟悉:共享音乐,电影,游戏,文档什么的给其他人使用。
非常简单的在Explorer里面就可以实现了,不过我常常是共享了一些文件夹,用完以后忘了取消共享。时间长了以后就忘了共享的文件夹具体是在什么地方了。而如果你直接删掉了共享的文件,而没有取消共享的话,其他人还是能看到看到这个文件夹,但是不能访问里面的内容了。
我就在想,windows就没有提供这个功能来取消共享文件夹或者找到共享文件夹的实际路径吗?可能是我不知道而已……
google了一下,发现可以通过WMI来获得共享文件的信息并取消共享
关于如何获得所有本地共享文件夹的代码:
pubilc const uint DISK_DRIVE = 0x0;
pubilc const uint PRINT_QUEUE = 0x1;
pubilc const uint DEVICE = 0x2;
pubilc const uint IPC = 0x3;
pubilc const uint DISK_DRIVE_ADMIN = 0x80000000;
pubilc const uint PRINT_QUEUE_ADMIN = 0x80000001;
pubilc const uint DEVICE_ADMIN = 0x80000002;
pubilc const uint IPC_ADMIN = 0x80000003;
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Share");
foreach (ManagementObject queryObj in searcher.Get())
{
uint type = uint.Parse(queryObj["Type"].ToString());
if (DISK_DRIVE != type)
{
continue;
}
FolderInformation info = new FolderInformation();
info.Name = queryObj["Name"].ToString();
info.Path = queryObj["Path"].ToString();
info.Description = queryObj["Description"].ToString();
folderList.Add(info);
}
取消共享也很简单
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Share WHERE Name = '" + sharingName + "'");
foreach (ManagementObject queryObj in searcher.Get())
{
uint type = uint.Parse(queryObj["Type"].ToString());
if (DISK_DRIVE != type)
{
continue;
}
queryObj.InvokeMethod("Delete", null, null);
}
相关文章推荐
- C#利用WMI实现本地文件夹的共享与取消共享
- C#通过WMI设置NTFS目录共享和目录安全
- c# 通过文件夹共享复制文件到服务器
- C#中操作WMI的类库-实现远程登录共享
- WMI StdRegProv 通过wmi操作注册表的vbscript实现代码 (本地或远程)
- C#通过WMI操作DNS类
- C#通过WMI的wind32 的API函数实现msinfo32的本地和远程计算机的系统日志查看功能
- C# 实现读取本地某文件夹中的html文件,然后通过正则表达式获取input控件中的id值
- 通过WMI实现了远程创建共享目录,远程拷贝文件等操作:
- 通过WMI实现远程创建共享目录,远程拷贝文件等操作
- 通过WMI实现远程创建共享目录,远程拷贝文件等操作
- C#通过WMI设置NTFS目录共享和目录安全
- C#通过WMI的wind32 的API函数实现msinfo32的本地和远程计算机的系统摘要信息查看功能
- C#通过WMI操作远程机器
- C#通过WMI获取系统信息
- VMware安装ubuntu,通过/mnt/hgfs 挂载共享Windows系统文件夹
- C# FTP下载文件夹到本地
- c# winform通过本地WebService接口访问SQL数据库实例
- C# 通过VSTO操作Excel的Protect方法
- C#共享WIFI能通过代码控制给连接的移动端分配IP么