using ExportMap.db; using ExportMap.Models; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; namespace ExportMap.cs { public class CommonUtils { /// /// 删除文件 /// public static List DeleteFiles(XYZArgs args, ref string err) { List pubs = PubDBHelper.SelectPublishs(args.ids); if (null == pubs || pubs.Count == 0) return null; List list = new List(); foreach (SysPublish pub in pubs) { try { if (string.IsNullOrEmpty(pub.url) || string.IsNullOrEmpty(pub.path)) continue; String path = SGUtils.LFData + "\\" + pub.path.Replace("\\tileset.json", ""); if (pub.url.Contains("/SG/") || !Directory.Exists(path)) { list.Add(pub.id); continue; } Tools.DelPath(path); list.Add(pub.id); } catch (Exception ex) { LogOut.Error(ex.Message + "\r\n" + ex.StackTrace); err = ex.Message; } } return list; } /// /// 删除任务 /// public static List DeleteTask(XYZArgs args, ref string err) { List list = new List(); try { List tasks = TaskDBHelper.SelectByIds(args.ids); if (null == tasks || 0 == tasks.Count) return list; string ip = Tools.GetLocalIP(); foreach (SysTask task in tasks) { if (ip != task.ip || task.status > 1 || task.pid < 1) continue; task.status = 3; task.update_user = args.userId; TaskDBHelper.Update(task); list.Add(task.id); task.err = KillProcess(task.pid); if (!string.IsNullOrEmpty(task.err)) { TaskDBHelper.Update(task); } } } catch (Exception ex) { LogOut.Error(ex.Message + "\r\n" + ex.StackTrace); err = ex.Message; } return list; } /// /// 杀死进程 /// public static string KillProcess(int processId) { List list = new List(); string cmd = string.Format("taskkill /f /t /pid {0}", processId); list.Add(cmd); return Tools.ExecCmd(list); } } }