在c#程序中用net use访问共享文件夹,错误信息:net不是内部或外部命令,也不是可运行程序或批处理文件
将代码生成的net use命令复制出来,直接在cmd中执行,命令可以执行没有问题
public bool Connect(string remoteHost, string userName, string passWord)
{
bool Flag = true;
Process proc = new Process();
proc.StartInfo.FileName = "cmd.exe";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.CreateNoWindow = true;
try
{
proc.Start();
string command = @" net use * /del /y ";
proc.StandardInput.WriteLine(command);
command = @"net use \\" + remoteHost + " " + passWord + " " + " /user:" + userName + ">NUL";
proc.StandardInput.WriteLine(command);
command = "exit";
proc.StandardInput.WriteLine(command);
while (proc.HasExited == false)
{
proc.WaitForExit(1000);
}
string errormsg = proc.StandardError.ReadToEnd();//这里返回值是两遍net不是内部或外部命令
if (errormsg != "")
Flag = false;
proc.StandardError.Close();
}
catch (Exception ex)
{
Flag = false;
}
finally
{
proc.Close();
proc.Dispose();
}
return Flag;
}
用不着net use,直接调用WNetAddConection2()api函数
下面这段代码测试是通过的,你可以结合自己的情况修改使用。
ProcessStartInfo PInfo;
Process P;
PInfo= new ProcessStartInfo("cmd", @"/c net use \\server password /user:username");
PInfo.CreateNoWindow = false; //nowindow
PInfo.UseShellExecute = true; //use shell
P = Process.Start(PInfo);
P.WaitForExit(5000); //give it some time to finish
P.Close();
真是见了鬼了,这段代码我复制出来新建个项目运行毫无问题,偏偏就是在原项目中不好用,难道和项目框架冲突???快来个大神救救我吧。[:/嚎啕大哭]
大佬,后来是怎么解决的?