internal void CloseBackUpDrive(int delay = 5 * 60 * 1000) { if (drive != "") { try { if (CloseBackUpDrive_timer != null) { CloseBackUpDrive_timer.Stop(); } CloseBackUpDrive_timer = new System.Windows.Forms.Timer(); CloseBackUpDrive_timer.Interval = delay + 1; CloseBackUpDrive_timer.Tick += (ss, ee) => { try { if (CloseBackUpDrive_timer != null) { CloseBackUpDrive_timer.Stop(); } CMD.RunBatString($"net use {drive}: /delete /Y "); drive = ""; WebServer.Default.SendData("backup_proj", "act", "stop_share", "project", project_code); } catch { } }; CloseBackUpDrive_timer.Start(); } catch { } } }
internal void OpenBackUpDrive() { if (!NetworkMode) { return; } if (CloseBackUpDrive_timer != null) { CloseBackUpDrive_timer.Stop(); } if (drive != "") { try { if (Directory.Exists(drive + ":\\")) { return; } } catch { } } drive = Utils.GetFreeDriveLeter(); var res = WebServer.Default.SendData("backup_proj", "act", "start_share", "project", project_code, "proj_name", project_name); if (res.TrimStart().StartsWith("err:")) { throw new Exception(res.Replace("err:", "خطا:")); } var V = res.Split(new char[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries); var host = NetworkPath; var path = V[0]; var user = V[1]; var pass = V[2]; var result = CMD.RunBatString( $@" cmdkey /add:{ host } /user:{ user } /pass:{ pass } net use {drive}: \\{ host }\{path} /p:no cmdkey /add:{ host } /user:net /pass:123net ", read_result: true); if (result.Contains("[Error]")) { drive = ""; throw new Exception(result.Split(new string[] { "[Error]" }, StringSplitOptions.None)[1]); } }