net use 명령을 실행 한 후에 디렉토리가 존재하는지 테스트하려했지만 mapDrive()가 드라이브 매핑을 완료하기 전에 checkMappedDrive()가 실행 중입니다.드라이브가 C#에서 net use로 성공적으로 매핑되었는지 어떻게 확인할 수 있습니까?
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() 쉘 작업이 완료되었는지 확인하기 . 그리고 프로세스의 ExitCode에서 오류가 있는지 확인하십시오. 그 후에도 폴더가 성공적으로 매핑되었는지 확인해야 할 수도 있습니다. –
사용자가 유효하지 않을 때 프로세스를 완료하는 데 약 10-15 초가 걸렸으므로 서버가 과부하 상태 일 수 있으므로 프로세스를 완료하고 싶습니다. – tomyforever