怎样共享一个文件夹?

ju_feng 2002-12-29 03:42:21
如何查处本机内的所有共享文件夹并且可以取消这些文件夹的共享

也包括IPC$ admin$等共享
...全文
655 点赞 收藏 7
写回复
7 条回复
ju_feng 2003年01月02日
问题已经解决了

ManagementObject.invokmeathod("delte,null);
ManagementObject.invokmeathod("create',null);

可以实现
回复 点赞
ju_feng 2003年01月01日
: chinchy(人民需要人民币)
select * from Win32_Share 有这个环境变量吗?

如果有应该有对应的操作的

原来看见过对磁盘操作的实现可以在ManagementObjectopration 类里面调用

invoke函数传递命令比如(fromart)来实现 不知道Win32_Share 用什么命令来添加取消共享

不知道上面的代码在那里看到的

可以告诉吗?
分数一定给你
回复 点赞
snewxf 2003年01月01日
关注!
回复 点赞
GiantHard 2002年12月31日
下面的代码示例使用 System.Management 集合类枚举计算机上的环境变量。由于此示例从本地计算机获取信息,因此示例中的某些参数可保留为默认值。此示例返回指定类 (Win32_Environment) 的所有对象的集合。在检索集合之后,代码使用 foreach 语句枚举集合中的所有元素,并显示集合中每个变量的名称和值。熟悉 WMI 的脚本 API 的开发人员将注意到一些相似性。这里显示了两个不同的变体:第一个使用 ManagementObjectSearcher 类,用于实质上表示完全枚举的最简单形式的查询;第二个获取 Win32_Environment 的类对象并使用 GetInstances() 方法枚举其实例。

[C#]
using System;
using System.Management;

// This example demonstrates how to perform a synchronous instance enumeration.

public class EnumerateInstances {
public static int Main(string[] args) {
// Build a query for enumeration of Win32_Environment instances
SelectQuery query = new SelectQuery("Win32_Environment");

// Instantiate an object searcher with this query
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);

// Call Get() to retrieve the collection of objects and loop through it
foreach (ManagementBaseObject envVar in searcher.Get())
Console.WriteLine("Variable : {0}, Value = {1}",
envVar["Name"],envVar["VariableValue"]);
return 0;
}
}
[Visual Basic]
Imports System
Imports System.Management
' This example demonstrates how to perform a synchronous instance enumeration.

Public Class EnumerateInstances
Overloads Public Shared Function Main(args() As String) As Integer
' Build a query for enumeration of Win32_Environment instances
Dim query As New SelectQuery("Win32_Environment")

' Instantiate an object searcher with this query
Dim searcher As New ManagementObjectSearcher(query)

' Call Get() to retrieve the collection of objects and loop through it
Dim envVar As ManagementBaseObject
For Each envVar In searcher.Get()
Console.WriteLine("Variable : {0}, Value = {1}", _
envVar("Name"), envVar("VariableValue"))
Next envVar
Return 0
End Function
End Class
对管理信息的访问经常发生在分布式环境中,并且可能涉及大量的数据。为支持此情况,也可以异步执行管理操作。下一个示例说明如何以异步编码模式枚举计算机上的所有服务。用于异步调用操作的方法是同步方法的重载,它带一个用于处理结果回调的 ManagementOperationObserver 类型的附加参数。此对象定义用于通知结果和完成的事件,您将向这些事件预订在引发它们时所执行的处理程序。

[C#]
using System;
using System.Management;

// This example demonstrates how to perform an asynchronous instance enumeration.

public class EnumerateInstancesAsync {
public static int Main(string[] args) {
//Enumerate asynchronously using Object Searcher
//===============================================

//Instantiate an object searcher with the query
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(new SelectQuery("Win32_Service"));

// Create a results watcher object, and handler for results and completion
ManagementOperationObserver results = new ManagementOperationObserver();
ObjectHandler objectHandler = new ObjectHandler();

// Attach handler to events for results and completion
results.ObjectReady += new ObjectReadyEventHandler(objectHandler.NewObject);
results.Completed += new CompletedEventHandler(objectHandler.Done);

//Call the asynchronous overload of Get() to start the enumeration
searcher.Get(results);

//Do something else while results arrive asynchronously
while (!objectHandler.IsCompleted) {
System.Threading.Thread.Sleep (1000);
}

objectHandler.Reset();
return 0;
}


//Handler for asynchronous results
public class ObjectHandler {
private bool isCompleted = false;

public void NewObject(object sender, ObjectReadyEventArgs obj) {
Console.WriteLine("Service : {0}, State = {1}",
obj.NewObject["Name"], obj.NewObject["State"]);
}

public bool IsCompleted {
get {
return isCompleted;
}
}

public void Reset() {
isCompleted = false;
}

public void Done(object sender, CompletedEventArgs obj) {
isCompleted = true;
}
}
}
回复 点赞
chinchy 2002年12月31日
查.

using System.Management;

ObjectQuery objectQuery = new ObjectQuery("select * from Win32_Share");//share object ManagementObjectSearcher searcher =new ManagementObjectSearcher(objectQuery);
txtMsg.Text="";
PropertyDataCollection pdc;
foreach (ManagementObject share in searcher.Get())
{
pdc=share.Properties;
txtMsg.Text+="======================================"+"\r\n";
txtMsg.Text+=share.Path+"\r\n";
foreach(PropertyData pd in pdc)
{
txtMsg.Text+=pd.Name+"="+pd.Value+"\r\n";
}
}

取消我也想知道.
回复 点赞
coollzh 2002年12月29日
用wmi试试
回复 点赞
saucer 2002年12月29日
never tried, but I think you need to use P/Invoke and WNetEnumResource , WNetAddConnection* and WNetCancelConnection* API to do the job
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.5w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告