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;
}
}
}