我正在尝试获取本地Intranet服务器上可用的所有共享文件夹的列表.
System.IO.Directory.GetDirectories()对于像这样的路径来说\\myServer\myShare,这样的工作很好,但是我得到了一条路径的例外\\myServer:
未处理的异常:System.ArgumentException:UNC路径的格式应为\ server\share.
有没有办法获取服务器的所有共享文件夹的列表?最终,我正在寻找一种方法,可以根据给定的路径处理这两种情况 - 返回给定服务器的所有共享列表,并返回给定网络共享文件夹的所有子目录列表.
我正在尝试为我们的产品生成一个包含API SDK的jar文件,因此我们的客户可以创建插件并根据我们的API进行编译.我们作为API SDK jar的一部分提供的所有类/接口也包含在我们的主要产品中,因此API开发人员不需要将API SDK jar包含在他们的插件jar中.因此,我并不担心API SDK jar的大小.但是,我想让插件开发人员的生活变得更轻松,只需提供一个包含已编译类和javadoc的jar文件(因此开发人员可以看到内联注释作为开发时自动完成功能的一部分).
我们使用Maven进行编译,并将以下配置添加到API SDK pom.xml中:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>attach-javadoc</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
这可行,但是这会生成两个jar文件 - 一个包含已编译的类,另一个包含javadoc.相反,我想生成一个包含所有内容的jar文件.
我们目前使用Maven来编译这个项目,但我们可以自由使用其他构建工具.
我正在使用动态实例化SoapHttpClientProtocol对象(代理类)的代码,并使用此对象来调用WS-Basic I Web Service.这是我的代码的简化版本:
public override object Call(Type callingObject,
string method, object[] methodParams, string URL)
{
MethodInfo requestMethod = callingObject.GetMethod(method);
//creates an instance of SoapHttpClientProtocol
object instance = Activator.CreateInstance(callingObject);
//sets the URL for the object that was just created
instance.GetType().InvokeMember("Url",
BindingFlags.Public | BindingFlags.Instance | BindingFlags.SetProperty, null,
instance,
new object[1] {URL});
return requestMethod.Invoke(instance, methodParams);
}
Run Code Online (Sandbox Code Playgroud)
我注意到在某些情况下Activator.CreateInstance()调用会花费大量时间,所以我试图通过使用lambda表达式来优化代码:
public override object Call(Type callingObject,
string method, object[] methodParams, string URL)
{
MethodInfo requestMethod = callingObject.GetMethod(method);
//creates an instance …Run Code Online (Sandbox Code Playgroud)