我试过在执行net use命令后目录是否存在,但checkMappedDrive()在mapDrive()完成映射驱动器之前正在执行。如何检查驱动器是否已成功映射到C#中的网络使用?
public void mapDrive(String driveChar, String server, String user, String password){
String path = "use "+driveChar+": "+server +" /user:"+user+ " "+password;
proc.StartInfo.FileName = "net";
proc.StartInfo.Arguments = path;
proc.StartInfo.UseShellExecute = false;
proc.Start();
if(checkMappedDrive(driveChar)){
//nice
}else{
//error
}
}
public bool checkMappedDrive(String driveChar){
String drive = Path.GetPathRoot(driveChar.ToUpper()+":\\");
Debug.WriteLine("Checking: " + drive);
if (!Directory.Exists(drive)){
proc.Kill();
//bad
return false;
}
//nice
return true;
}
使用Process.WaitForExit(),以确保您的shell操作完成。然后检查你的Process的ExitCode是否有错误。您可能仍然需要检查您的文件夹已被映射成功后。 –
我想完成这个过程,因为当用户无效时,大约需要10-15秒才能完成该过程,也许是服务器超载或其他问题。 – tomyforever