/// <summary> /// 剪切文件夹(区别于复制文件夹) /// 注意:不会将路径的目录移动过去 /// </summary> /// <param name="sPath"></param> /// <param name="tPath"></param> public static void MoveFolder(string sPath, string tPath) { if (Directory.Exists(sPath)) { try { if (Directory.Exists(tPath)) { RemoveFullFolder(tPath); if (Directory.Exists(tPath)) { DirectoryInfo directoryInfo = new DirectoryInfo(tPath); if (directoryInfo.Attributes != FileAttributes.Normal) { directoryInfo.Attributes = FileAttributes.Normal; } directoryInfo.Delete(); //Directory.Delete(path); } } Directory.Move(sPath, tPath); } catch (Exception ex) { Debug.LogError(ex.Message); } } else { ATLog.Error("路径不存在! \r\n" + sPath); Debug.LogError(sPath + " : Not Found"); } }
public override void DoTask() { ATLog.Info("任务: " + Name + "Begin..."); System.Threading.Thread.Sleep(5000); _status = TaskStatus.Failure; }
public override void DoTask() { //TODO //主要任务内容 ATLog.Info("任务: " + Name + "Begin..."); BatTool.CallBatByThread(AutoToolConstants.BatDic["svnOP_Update"], this); }
public override void DoTask() { //TODO //主要任务内容 //批处理不需要手动添加任务状态的改变 //非批处理任务需手动添加任务状态的改变 ATLog.Info("任务: " + Name + "Begin..."); }
public static void LogTest() { UnityEngine.Debug.LogError(AutoToolConstants.logPath); ATLog.Debug("this is debug log !"); ATLog.Warn("this is warn log !"); ATLog.Error("this is error log !"); ATLog.Info("this is info log !"); }
public override void OnStatusChanged(TaskStatus status) { _status = status; ATLog.Info("Task: " + Name + " Status: " + status.ToString()); if (_currentWindow != null) { _currentWindow.Repaint(); } }
public override void OnStatusChanged(TaskStatus status) { _status = status; ATLog.Info("Task: " + Name + " Status: " + status.ToString()); if (_currentWindow != null) { // UnityEngine.Debug.Log("重绘窗口!"); _currentWindow.Focus(); _currentWindow.Repaint(); } }
private void OnClickSelectUnityInstallDirectoryBtn() { UnityEXE = EditorUtility.OpenFilePanel("Unity安装路径", System.Environment.CurrentDirectory, "exe"); System.Diagnostics.Process currentProcess = System.Diagnostics.Process.GetCurrentProcess(); //Debug.LogError(currentProcess.MainModule.FileName); if (currentProcess.MainModule.FileName.Replace("\\", "/") != UnityEXE || !AutoToolConstants.UnityVersion.Equals(Application.unityVersion)) { EditorUtility.DisplayDialog("错误", "未选择" + AutoToolConstants.UnityVersion + "的Unity.exe!", "OK"); ATLog.Warn("未找到相应版本的Unity!"); UnityEXE = null; return; } EditorPrefs.SetString(AutoToolPrefKeys.UnityEXE, UnityEXE); }
/// <summary> /// 回滚任务 /// </summary> private void OnReverseTasks() { ATLog.Info("=======>进行任务回滚"); SysProgressBar.ShowProgressBar(0, taskName: "任务失败,正在进行回滚!"); for (int i = ExcutedTasks.Count - 1; i >= 0; i--) { if (ExcutedTasks[i].IsCanReverse) {//任务回滚 ExcutedTasks[i].OnReverse(); } SysProgressBar.ShowProgressBar(i / ExcutedTasks.Count, taskName: "任务失败,正在进行回滚!"); System.Threading.Thread.Sleep(5000); } SysProgressBar.ShowProgressBar(100, taskName: "任务回滚完毕!"); EndATBuildPipline(); }
/// <summary> /// 移除文件夹及其子文件 /// </summary> /// <param name="path">文件夹路径</param> public static void RemoveFullFolder(string path) { path = path.Replace("\\", "/"); if (!Directory.Exists(path)) { ATLog.Warn("文件夹不存在! \r\n " + path); return; } List <string> files = new List <string>(Directory.GetFiles(path)); files.ForEach(c => { string tempFileName = Path.Combine(path, Path.GetFileName(c)); FileInfo fileInfo = new FileInfo(tempFileName); if (fileInfo.Attributes != FileAttributes.Normal) { fileInfo.Attributes = FileAttributes.Normal; } fileInfo.Delete(); //File.Delete(tempFileName); }); List <string> folders = new List <string>(Directory.GetDirectories(path)); folders.ForEach(c => { string tempFolderName = Path.Combine(path, Path.GetFileName(c)); RemoveFullFolder(tempFolderName); }); if (Directory.Exists(path)) { DirectoryInfo directoryInfo = new DirectoryInfo(path); if (directoryInfo.Attributes != FileAttributes.Normal) { directoryInfo.Attributes = FileAttributes.Normal; } directoryInfo.Delete(); //Directory.Delete(path); return; } }
/// <summary> /// 写内容到文件 /// </summary> /// <param name="filePath"></param> /// <param name="content"></param> /// <returns></returns> public static string WriteToFile(string filePath, string content, FileMode mode = FileMode.OpenOrCreate) { string result = null; try { FileStream fs = new FileStream(filePath, mode, FileAccess.Write); StreamWriter sw = new StreamWriter(fs); sw.WriteLine(content); sw.Close(); } catch (Exception ex) { result = ex.Message; ATLog.Error(ex); return(result); } return(result); }
private void ClearLog() { ATLog.ClearLog(); EditorUtility.DisplayDialog("提示", "Log清理完成!", "OK"); }
/// <summary> /// 任务管线结束 /// </summary> public void EndATBuildPipline() { PiplineStatus = ATBuildPiplineStatus.Unoccupied; BuildPiplineWindow.Instance.isExcuteATBuildPipline = false; ATLog.Info("=======>任务管线结束!"); }