管道基础大数据平台系统开发-【CS】-ExportMap
13693261870
2023-08-21 7969eef8a3a2aadaf88672e3c2c5354f5f44f802
添加工具类
已添加1个文件
已修改4个文件
191 ■■■■■ 文件已修改
DataLoader/CS/GdalHelper.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataLoader/CS/StaticData.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataLoader/CS/Tools.cs 180 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataLoader/DataLoader.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ExportMap/cs/Tools.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataLoader/CS/GdalHelper.cs
@@ -71,10 +71,10 @@
        public void RegisterGDal()
        {
            string gdalData = Path.Combine(StaticData.BasePath, "gdal-data");
            string gdalData = Path.Combine(Tools.BaseDir, "gdal-data");
            Environment.SetEnvironmentVariable("GDAL_DATA", gdalData);
            string proj7 = Path.Combine(StaticData.BasePath, "proj7\\share");
            string proj7 = Path.Combine(Tools.BaseDir, "proj7\\share");
            Environment.SetEnvironmentVariable("PROJ_LIB", proj7);
            Gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES"); // NO,YES
DataLoader/CS/StaticData.cs
@@ -6,8 +6,6 @@
{
    public class StaticData
    {
        public static String BasePath = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
        public static String ADMIN = "admin";
        public readonly static String ZIP = ".zip";
DataLoader/CS/Tools.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,180 @@
using Npgsql;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.Common;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Net.Sockets;
using System.Net;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace DataLoader.CS
{
    /// <summary>
    /// å·¥å…·ç±»
    /// </summary>
    public class Tools
    {
        /// <summary>
        /// åŸºç¡€ç›®å½•
        /// </summary>
        public static readonly string BaseDir = AppDomain.CurrentDomain.BaseDirectory;
        private static PostgreHelper _dbHelper;
        /// <summary>
        /// DB帮助类
        /// </summary>
        public static PostgreHelper DBHelper
        {
            get
            {
                if (null == _dbHelper)
                {
                    _dbHelper = new PostgreHelper();
                }
                return _dbHelper;
            }
        }
        /// <summary>
        /// å­—节格式化
        /// </summary>
        public static string FormatBytes(long bytes)
        {
            string[] Suffix = { "Byte", "KB", "MB", "GB", "TB" };
            int i = 0;
            double dblSByte = bytes;
            if (bytes > 1024)
                for (i = 0; (bytes / 1024) > 0; i++, bytes /= 1024)
                    dblSByte = bytes / 1024.0;
            return String.Format("{0:0.##}{1}", dblSByte, Suffix[i]);
        }
        /// <summary>
        /// èŽ·å–è®¾ç½®
        /// </summary>
        public static string GetSetting(string key)
        {
            return ConfigurationManager.AppSettings[key];
        }
        /// <summary>
        /// èŽ·å–Db参数
        /// </summary>
        public static List<DbParameter> GetParams<T>(string sql, T t)
        {
            List<DbParameter> list = new List<DbParameter>();
            Type tType = typeof(T);
            BindingFlags flags = BindingFlags.Public | BindingFlags.IgnoreCase | BindingFlags.Instance;
            int start = sql.IndexOf("@");
            while (start != -1)
            {
                int end = sql.IndexOf(",", start);
                if (end == -1) end = sql.IndexOf(")", start);
                if (end == -1) end = sql.IndexOf(" ", start);
                if (end == -1) end = sql.Length;
                string name = sql.Substring(start + 1, end - start - 1);
                PropertyInfo pi = tType.GetProperty(name, flags);
                if (pi != null)
                {
                    object value = pi.GetValue(t, null);
                    DbParameter dp = new NpgsqlParameter("@" + name, value);
                    list.Add(dp);
                }
                start = sql.IndexOf("@", end);
            }
            return list;
        }
        /// <summary>
        /// æ‰§è¡Œå‘½ä»¤
        /// </summary>
        /// <param name="list">命令集合</param>
        public static string ExecCmd(List<string> list)
        {
            string str = null;
            Process p = null;
            try
            {
                p = new Process();
                p.StartInfo.FileName = "cmd.exe";
                p.StartInfo.UseShellExecute = false;
                p.StartInfo.CreateNoWindow = true;
                p.StartInfo.RedirectStandardInput = true;
                p.StartInfo.RedirectStandardOutput = true;
                p.StartInfo.RedirectStandardError = true;
                p.Start();
                StreamWriter si = p.StandardInput;
                StreamReader se = p.StandardError;
                LogOut.Info("cmd = " + string.Join(",", list));
                si.AutoFlush = true;
                foreach (string cmd in list)
                {
                    si.WriteLine(cmd);
                }
                si.WriteLine("exit");
                str = se.ReadToEnd();
                se.Close();
                si.Close();
            }
            catch (Exception ex)
            {
                LogOut.Error(ex.Message + "\r\n" + ex.StackTrace);
                str = ex.Message;
            }
            finally
            {
                if (p != null)
                {
                    p.Close();
                    p = null;
                }
            }
            return str;
        }
        /// <summary>
        /// åˆ é™¤è·¯å¾„
        /// </summary>
        public static string DelPath(string path)
        {
            List<string> list = new List<string>();
            list.Add(string.Format("rd \"{0}\" /s /q", path));
            return ExecCmd(list);
        }
        /// <summary>
        /// èŽ·å–æœ¬æœºIP
        /// </summary>
        /// <returns></returns>
        public static string GetLocalIP()
        {
            var host = Dns.GetHostEntry(Dns.GetHostName());
            foreach (var ip in host.AddressList)
            {
                if (ip.AddressFamily == AddressFamily.InterNetwork)
                {
                    return ip.ToString();
                }
            }
            return GetSetting("localIP");
        }
    }
}
DataLoader/DataLoader.csproj
@@ -136,6 +136,7 @@
    <Compile Include="CS\LogOut.cs" />
    <Compile Include="CS\MD5Helper.cs" />
    <Compile Include="CS\StaticData.cs" />
    <Compile Include="CS\Tools.cs" />
    <Compile Include="Model\Tool.cs" />
    <Compile Include="CS\ModelHandler.cs" />
    <Compile Include="Model\NtstWeb.cs" />
ExportMap/cs/Tools.cs
@@ -124,7 +124,7 @@
        }
        /// <summary>
        /// åˆ›å»ºç›®å½•
        /// åˆ›å»ºç›®å½• *
        /// </summary>
        public static void CreateDirectory(string dir)
        {
@@ -138,7 +138,7 @@
        }
        /// <summary>
        /// å…‹éš†å¯¹è±¡
        /// å…‹éš†å¯¹è±¡ *
        /// </summary>
        public static T Clone<T>(T source) where T : new()
        {