using System; using System.Collections.Generic; using System.Configuration; using System.Diagnostics; using System.IO; using System.Linq; using System.Web; namespace LFServer.cs { public static class ExportUtil { /// /// 基目录 /// public static readonly string BaseDir = AppDomain.CurrentDomain.BaseDirectory; /// /// 最大文件数 /// public const int MaxFileCount = 2000; private static string sourcesPath; /// /// 获取资源目录 /// public static string SourcesPath { get { if (string.IsNullOrEmpty(sourcesPath)) { sourcesPath = Path.Combine(BaseDir, "Sources"); } return sourcesPath; } } private static string pyFile; /// /// 获取Python文件 /// public static string PyFile { get { if (string.IsNullOrWhiteSpace(pyFile)) { pyFile = Path.Combine(SourcesPath, "render.py"); } return pyFile; } } /// /// 获取上期字符串 /// public static string DateStr { get { return DateTime.Now.ToString("yyyyMMddHHmmss"); } } /// /// 获取出图目录 /// public static string ExportFolder { get { return ConfigurationManager.AppSettings["exportFolder"]; } } /// /// 获取出图子目录 /// public static string GetExportSubFolder() { string root = ExportFolder; if (!Directory.Exists(root)) { Directory.CreateDirectory(root); } int i = 1; while (true) { string subFolder = Path.Combine(root, i.ToString()); if (!Directory.Exists(subFolder)) { Directory.CreateDirectory(subFolder); break; } DirectoryInfo dir = new DirectoryInfo(subFolder); FileInfo[] files = dir.GetFiles(); if (files == null || files.Length < MaxFileCount) { break; } i++; } return i.ToString(); } /// /// 执行Python /// /// Python文件 /// QGIS工程 /// QGIS模板 public static void ExecPython(string py, string qgz, string qpt) { try { string args = string.Format("{0} -qgz {1} -qpt {2}", py, qgz, qpt); Process p = new Process(); p.StartInfo.UseShellExecute = false; p.StartInfo.ErrorDialog = true; p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; p.StartInfo.RedirectStandardError = false; p.StartInfo.FileName = "python"; p.StartInfo.Arguments = args; p.StartInfo.CreateNoWindow = true; p.Start(); } catch { } } public static void Generate() { string date = DateStr; } } }