用下面的代码,可以获得当前机器上所有的盘,根据DriveType==Network可以知道这个盘是网络盘。System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives(); foreach (var di in drives) Console.WriteLine("{0}:{1}", di.Name, di.DriveType);
本地通过共享硬盘操作 网络通过FTP等实现操作 NET USE \\ServerB\IPC$ 密码 /USER:用户名
Dim x As New System.Security.SecureString x.Clear() x.AppendChar("l") x.AppendChar(",") x.AppendChar("P") x.AppendChar("f") x.AppendChar("2") x.AppendChar("L") x.AppendChar("7") x.AppendChar(".") System.Diagnostics.Process.Start("\\192.168.100.74\fileserver\Operations\66.新产品资料\新产品试产情况\新产品试产情况表", "A3-mis01", x, "192.168.100.74")上面这句是我打开一个表文件的,但每次都提示参数设置不正确,但我的参数都是正确的啊,没看出那里错了
foreach (var di in drives)
Console.WriteLine("{0}:{1}", di.Name, di.DriveType);
网络通过FTP等实现操作
NET USE \\ServerB\IPC$ 密码 /USER:用户名
x.Clear()
x.AppendChar("l")
x.AppendChar(",")
x.AppendChar("P")
x.AppendChar("f")
x.AppendChar("2")
x.AppendChar("L")
x.AppendChar("7")
x.AppendChar(".")
System.Diagnostics.Process.Start("\\192.168.100.74\fileserver\Operations\66.新产品资料\新产品试产情况\新产品试产情况表", "A3-mis01", x, "192.168.100.74")上面这句是我打开一个表文件的,但每次都提示参数设置不正确,但我的参数都是正确的啊,没看出那里错了
对呀,用映射网络驱动器不行吗?针对你考虑的每台电脑盘符不一样,如果是b/s的系统就不存在这种情况了,在服务器上事先建好就ok了,如果是c/s是系统,那么增加一个配置盘符名称的功能可行?
{
try
{
using (Process proc = new Process())
{
proc.StartInfo.FileName = fileName;
proc.StartInfo.Arguments = arguments;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
proc.WaitForExit();
proc.Close();
}
}
catch(Exception ex) {
Console.WriteLine(ex.ToString());
}
}
//用这个创建连接:
Run("net.exe", @"use \\192.168.1.100\IPC$ 密码 /user:用户名");//用这个创建映射
Run("net.exe", @"use Z: \\192.168.1.100\FolderName 密码 /user:用户名");
中使用的WNetAddConnection2实现了需要的功能,谢谢大家的指点,结贴了。