private bool TaskCopy(RealocateTask task) { const string cmd = "XCOPY"; const string flags = @"/q /i /s /e /k /r /h"; // /f // /o /x // requires admin // !?! string cmdParams = BetterPath(task.Source) + " " + BetterPath(task.Destination) + " " + flags; return(ExecuteCommand(cmd, cmdParams, XcopyExitCode)); }
private bool TaskMkSymLn(RealocateTask task) { // MKLINK [[/D] | [/H] | [/J]] Link Target const string cmd = "MKLINK"; const string flags = @"/j"; string cmdParams = flags + " " + BetterPath(task.Source) + " " + BetterPath(task.Destination); return(ExecuteCommand(cmd, cmdParams, Win32ErrMsg)); }
private bool TaskDelete(RealocateTask task) { // RMDIR [/S] [/Q] [drive:]path const string cmd = "RMDIR"; const string flags = @"/s /q"; string cmdParams = flags + " " + BetterPath(task.Source); // !?! rmdir nie zwraca bledu !?! return(ExecuteCommand(cmd, cmdParams, Win32ErrMsg)); }
protected bool TaskRealocate(RealocateTask task) { Console.WriteLine("Task:\t{0}", task); if (!TaskCopy(task)) { return(false); } if (!TaskDelete(task)) { return(false); } if (!TaskMkSymLn(task)) { return(false); } return(true); }