• 一些比较好的方法或类,适用于C#


    在开发过程有我收集了一些比较好的方法

      1 using System; 
      2 using System.Collections.Generic; 
      3 using System.Configuration; 
      4 using System.IO; 
      5 using System.Linq; 
      6 using System.Net; 
      7 using System.Text; 
      8 using System.Text.RegularExpressions; 
      9 using System.Web; 
     10 using System.Web.Configuration; 
     11 using System.Web.Security; 
     12 
     13 namespace Acesoft.Common 
     14 { 
     15 public static class Tool 
     16 { 
     17 public const string vbCrlf = "vbCrlf"; 
     18 public static string AppPath = System.AppDomain.CurrentDomain.BaseDirectory.ToString(); 
     19 public static string Theme = ReadAppSitting("Theme"); 
     20 #region MD5加密 
     21 /// <summary> 
     22 /// MD5加密 
     23 /// </summary> 
     24 /// <param name="Pwd">要加密的字符串</param> 
     25 /// <param name="salt">区别符</param> 
     26 /// <returns>返回加密后的MD5字符</returns> 
     27 
     28 public static string Md5(string Pwd, string salt = "king") 
     29 { 
     30 string result = FormsAuthentication.HashPasswordForStoringInConfigFile(Pwd + salt, "MD5"); 
     31 return FormsAuthentication.HashPasswordForStoringInConfigFile(result, "MD5"); 
     32 } 
     33 #endregion 
     34 
     35 #region 制作随机字母和数字 
     36 /// <summary> 
     37 /// 制作随机字母和数字 
     38 /// </summary> 
     39 /// <param name="Length">得到的随机字符串长度</param> 
     40 /// <param name="type">0为小写字母数字混合,1为纯数字,2为纯小字母,3为大小写混合</param> 
     41 /// <returns></returns> 
     42 public static string MakeRandomNumber(int Length, int type = 0) 
     43 { 
     44 char[] constant = { 
     45 '0','1','2','3','4','5','6','7','8','9', 
     46 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z', 
     47 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z' 
     48 }; 
     49 System.Text.StringBuilder newRandom = new System.Text.StringBuilder(62); 
     50 Random rd = new Random(); 
     51 int max = 36; 
     52 int min = 0; 
     53 switch (type) 
     54 { 
     55 case 1: 
     56 max = 10; 
     57 break; 
     58 case 2: 
     59 min = 10; 
     60 break; 
     61 case 3: 
     62 min = 10; 
     63 max = 62; 
     64 break; 
     65 } 
     66 
     67 for (int i = 0; i < Length; i++) 
     68 { 
     69 newRandom.Append(constant[rd.Next(min, max)]); 
     70 } 
     71 return newRandom.ToString(); 
     72 } 
     73 #endregion 
     74 
     75 #region 读取文本文件 
     76 /// <summary> 
     77 /// 读取文本文件 
     78 /// </summary> 
     79 /// <param name="txtPath">文件路径</param> 
     80 /// <param name="code">文件编码,默认是"GB2312"</param> 
     81 /// <returns></returns> 
     82 public static string ReadTxt(string txtPath, string code = "GB2312") 
     83 { 
     84 string txt = ""; 
     85 try 
     86 { 
     87 txtPath = txtPath.Replace("/", "\"); 
     88 if (File.Exists(txtPath) == true) 
     89 { 
     90 FileStream fs = new FileStream(txtPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); 
     91 StreamReader sr = new StreamReader(fs, Encoding.GetEncoding(code)); 
     92 txt = sr.ReadToEnd(); 
     93 sr.Close(); 
     94 fs.Dispose(); 
     95 } 
     96 return txt; 
     97 } 
     98 catch 
     99 { 
    100 return ""; 
    101 } 
    102 } 
    103 #endregion 
    104 
    105 #region 创建并写入txt文件 
    106 
    107 /// <summary> 
    108 /// 创建并写入txt文件 
    109 /// </summary> 
    110 /// <param name="txtPath">文件路径</param> 
    111 /// 要写入的内容 
    112 /// <param name="code">文件编码格式,默认为GB2312</param> 
    113 /// <returns></returns> 
    114 public static bool WriteTxt(string txtPath, string Constr, string code = "GB2312") 
    115 { 
    116 try 
    117 { 
    118 txtPath = txtPath.Replace("/", "\"); 
    119 txtPath = txtPath.Replace("$split$", "|"); 
    120 if (GetBody(Constr, "<meta[^<]*charset=([^<]*)"").ToLower() == "utf-8") code = "UTF-8"; 
    121 if (Directory.Exists(Path.GetDirectoryName(txtPath)) == false) Directory.CreateDirectory(Path.GetDirectoryName(txtPath)); 
    122 StreamWriter sw = new StreamWriter(txtPath, false, Encoding.GetEncoding(code)); 
    123 sw.Write(Constr); 
    124 sw.Close(); 
    125 return true; 
    126 } 
    127 catch 
    128 { return false; } 
    129 } 
    130 #endregion 
    131 
    132 #region 获取文件大小 
    133 /// <summary> 
    134 /// 获取文件大小 
    135 /// </summary> 
    136 /// <param name="txtPath">文件地址</param> 
    137 /// <param name="_appPath">网站目录地址</param> 
    138 /// <returns></returns> 
    139 public static long GetFileSize(string txtPath, string _appPath = "") 
    140 { 
    141 try 
    142 { 
    143 if (string.IsNullOrEmpty(_appPath)) 
    144 { 
    145 _appPath = AppPath; 
    146 } 
    147 txtPath = _appPath + txtPath.Replace("/", "\"); 
    148 if (File.Exists(txtPath) == true) 
    149 { 
    150 FileStream fs = new FileStream(txtPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); 
    151 long len = fs.Length; 
    152 fs.Dispose(); 
    153 return len; 
    154 } 
    155 return 0; 
    156 } 
    157 catch 
    158 { 
    159 return 0; 
    160 } 
    161 } 
    162 #endregion 
    163 
    164 #region 写入注册表 
    165 /// <summary> 
    166 /// 写入注册表 
    167 /// </summary> 
    168 /// <param name="para">注册表键名</param> 
    169 /// <param name="paraVale">注册表键值</param> 
    170 /// <param name="paraDir">注册表目录名</param> 
    171 /// <returns></returns> 
    172 public static bool WriteKey(string para, string paraVale, string paraDir = "northsnow") 
    173 { 
    174 try 
    175 { 
    176 Microsoft.Win32.RegistryKey Key1 = Microsoft.Win32.Registry.CurrentUser; 
    177 Microsoft.Win32.RegistryKey Key2 = Key1.OpenSubKey(paraDir, true); 
    178 if (Key2 == null) 
    179 Key2 = Key1.CreateSubKey(paraDir); //如果键不存在就创建它 
    180 Key2.SetValue(para, paraVale); 
    181 return true; 
    182 } 
    183 catch 
    184 { return false; } 
    185 } 
    186 #endregion 
    187 
    188 #region 读取指定注册表的键值 
    189 /// <summary> 
    190 /// 读取指定注册表的键值 
    191 /// </summary> 
    192 /// <param name="para">注册表键名</param> 
    193 /// <param name="paraDir">注册表键名目录</param> 
    194 /// <returns></returns> 
    195 public static string ReadKey(string para, string paraDir = "northsnow") 
    196 { 
    197 try 
    198 { 
    199 Microsoft.Win32.RegistryKey Key1 = Microsoft.Win32.Registry.CurrentUser; 
    200 Microsoft.Win32.RegistryKey Key2 = Key1.OpenSubKey(paraDir, true); 
    201 if (Key2 == null) 
    202 return ""; 
    203 else 
    204 return Key2.GetValue(para).ToString(); 
    205 } 
    206 catch 
    207 { return ""; } 
    208 } 
    209 #endregion 
    210 
    211 #region 获取单个汉字的首拼音 
    212 /// <summary> 
    213 /// 获取单个汉字的首拼音 
    214 /// </summary> 
    215 /// <param name="myChar">需要转换的字符</param> 
    216 /// <returns>转换结果</returns> 
    217 private static string getSpell(string myChar) 
    218 { 
    219 byte[] arrCN = System.Text.Encoding.Default.GetBytes(myChar); 
    220 if (arrCN.Length > 1) 
    221 { 
    222 int area = (short)arrCN[0]; 
    223 int pos = (short)arrCN[1]; 
    224 int code = (area << 8) + pos; 
    225 int[] areacode = { 45217, 45253, 45761, 46318, 46826, 47010, 47297, 47614, 48119, 48119, 49062, 49324, 49896, 50371, 50614, 50622, 50906, 51387, 51446, 52218, 52698, 52698, 52698, 52980, 53689, 54481 }; 
    226 for (int i = 0; i < 26; i++) 
    227 { 
    228 int max = 55290; 
    229 if (i != 25) max = areacode[i + 1]; 
    230 if (areacode[i] <= code && code < max) 
    231 { 
    232 return System.Text.Encoding.Default.GetString(new byte[] { (byte)(65 + i) }); 
    233 } 
    234 } 
    235 return "_"; 
    236 } 
    237 else return myChar.ToUpper(); 
    238 } 
    239 #endregion 
    240 
    241 #region 获取字符串中汉字的首或全拼音 
    242 /// <summary> 
    243 /// 获取字符串中汉字的首或全拼音 
    244 /// </summary> 
    245 /// <param name="para">需要转换的汉字字符串</param> 
    246 /// <param name="spellType">只转换得到首字母参为true,全拼为false</param> 
    247 /// <returns>转换结果</returns> 
    248 public static string GetSpell(string para, bool spellType = true) 
    249 { 
    250 string Str = ""; 
    251 para = Regex.Replace(para, " ", ""); 
    252 para = Regex.Replace(para, " ", ""); 
    253 for (int i = 0; i < para.Length; i++) 
    254 { 
    255 if (spellType == true) 
    256 Str += getSpell(para[i].ToString()); 
    257 else 
    258 Str += NPinyin.Pinyin.GetPinyin(para[i]); 
    259 } 
    260 return Str; 
    261 } 
    262 #endregion 
    263 
    264 #region 正则单个过滤替换 
    265 /// <summary> 
    266 /// 正则单个过滤替换 
    267 /// </summary> 
    268 /// <param name="para">要过滤或者要替换的源字段串</param> 
    269 /// <param name="ruleString">过滤或者替换规则</param> 
    270 /// <param name="replaceString">替换成的内容</param> 
    271 /// <returns></returns> 
    272 private static string myFilter(string para, string ruleString, string replaceString = "") 
    273 { 
    274 try 
    275 { 
    276 Regex rgx = new Regex(ruleString, RegexOptions.IgnoreCase); 
    277 return rgx.Replace(para, replaceString); 
    278 } 
    279 catch 
    280 { 
    281 return para; 
    282 } 
    283 } 
    284 #endregion 
    285 
    286 #region 正则过滤替换 
    287 /// <summary> 
    288 /// 正则过滤替换 
    289 /// </summary> 
    290 /// <param name="para">要过滤或者要替换的源字段串</param> 
    291 /// <param name="ruleString">过滤或者替换规则多个用vbCrlf分隔</param> 
    292 /// <param name="replaceString">替换成的内容多个用vbCrlf分隔</param> 
    293 /// <returns></returns> 
    294 public static string MyFilter(string para, string ruleString, string replaceString = "") 
    295 { 
    296 
    297 string[] RuleArray = Regex.Split(ruleString, vbCrlf); 
    298 string[] ReplaceArray = Regex.Split(replaceString, vbCrlf); 
    299 
    300 for (int i = 0; i < RuleArray.Length; i++) 
    301 { 
    302 if (replaceString == "") 
    303 para = myFilter(para, RuleArray[i]); 
    304 else 
    305 { 
    306 string item = ""; 
    307 if (i < ReplaceArray.Length) 
    308 item = ReplaceArray[i]; 
    309 para = myFilter(para, RuleArray[i], item); 
    310 } 
    311 
    312 } 
    313 return para; 
    314 } 
    315 #endregion 
    316 
    317 #region 截取正则规则内容 
    318 /// <summary> 
    319 /// 截取正则规则内容 
    320 /// </summary> 
    321 /// <param name="para">要截取的源字符串</param> 
    322 /// <param name="ruleString">正则规则</param> 
    323 /// <param name="filterStr">过滤规则</param> 
    324 /// <returns></returns> 
    325 public static string GetBody(string para, string ruleString, string filterStr = null) 
    326 { 
    327 
    328 try 
    329 { 
    330 MatchCollection Mc = Regex.Matches(para, ruleString, RegexOptions.IgnoreCase); 
    331 if (Mc.Count > 0) 
    332 { 
    333 if (string.IsNullOrEmpty(filterStr)) 
    334 return Mc[0].Groups[1].Value; 
    335 else 
    336 return MyFilter(Mc[0].Groups[1].Value, filterStr.Replace("
    ", vbCrlf)); 
    337 } 
    338 else 
    339 return ""; 
    340 } 
    341 catch 
    342 { 
    343 return ""; 
    344 } 
    345 } 
    346 #endregion 
    347 
    348 #region 按正则取内容返回数据为数组 
    349 /// <summary> 
    350 /// 按正则取内容返回数据为数组 
    351 /// </summary> 
    352 /// <param name="para">要取内容的源文件</param> 
    353 /// <param name="ruleString">正则规则</param> 
    354 /// <returns></returns> 
    355 public static string[] GetArray(string para, string ruleString) 
    356 { 
    357 IList<string> Result = new List<string>(); 
    358 try 
    359 { 
    360 MatchCollection Mc = Regex.Matches(para, ruleString, RegexOptions.IgnoreCase); 
    361 foreach (Match ma in Mc) 
    362 { 
    363 Result.Add(ma.Groups[1].Value); 
    364 
    365 } 
    366 return Result.ToArray(); 
    367 } 
    368 catch 
    369 { 
    370 return Result.ToArray(); 
    371 } 
    372 
    373 } 
    374 #endregion 
    375 
    376 #region 正则获取多个值,近回值为二维的List型 
    377 /// <summary> 
    378 /// 正则获取多个值,近回值为二维的List型 
    379 /// </summary> 
    380 /// <param name="para">要取内容的源文件</param> 
    381 /// <param name="ruleString">正则规则</param> 
    382 /// <returns></returns> 
    383 public static List<List<string>> GetMultiArray(string para, string ruleString) 
    384 { 
    385 List<List<string>> Result = new List<List<string>>(); 
    386 
    387 try 
    388 { 
    389 MatchCollection Mc = Regex.Matches(para, ruleString, RegexOptions.IgnoreCase); 
    390 foreach (Match Ma in Mc) 
    391 { 
    392 List<string> RowList = new List<string>(); 
    393 for (int i = 1; i < Ma.Groups.Count; i++) 
    394 { 
    395 RowList.Add(Ma.Groups[i].Value); 
    396 } 
    397 Result.Add(RowList); 
    398 } 
    399 return Result; 
    400 } 
    401 catch 
    402 { 
    403 return Result; 
    404 } 
    405 
    406 } 
    407 #endregion 
    408 
    409 #region 获取网页源码 
    410 /// <summary> 
    411 /// 获取网页源码 
    412 /// </summary> 
    413 /// <param name="url">要获取网页的地址</param> 
    414 /// <param name="RefererUrl">网页的refer</param> 
    415 /// <param name="charSet">网页的字符编码,不知道是什么编码时输入空</param> 
    416 /// <returns></returns> 
    417 public static string getWebCodes(string Url, string RefererUrl = "http://www.baidu.com", string charSet = "GB2312") 
    418 { 
    419 string strHTML = ""; 
    420 try 
    421 { 
    422 WebClient myWebClient = new WebClient(); 
    423 myWebClient.Headers.Add(HttpRequestHeader.Referer, RefererUrl); 
    424 Stream myStream = myWebClient.OpenRead(Url); 
    425 StreamReader sr = new StreamReader(myStream, System.Text.Encoding.GetEncoding(charSet)); 
    426 strHTML = sr.ReadToEnd().ToString(); 
    427 myStream.Close(); 
    428 return strHTML; 
    429 } 
    430 catch 
    431 { 
    432 return strHTML; 
    433 } 
    434 } 
    435 #endregion 
    436 
    437 public static string FromChinaz(string url) 
    438 { 
    439 string ChinazUrl = "http://tool.chinaz.com/Tools/PageCode.aspx?q=" + url.Replace("http://", ""); 
    440 string WebCodes = getWebCodes(ChinazUrl, "http://tool.chinaz.com/Tools/PageCode.aspx", "utf-8"); 
    441 WebCodes = GetBody(WebCodes, "<textarea name="code" id="htmltext" class="xml" style="95%;height:500px;">((.|\n)+?)</textarea>"); 
    442 WebCodes = HttpUtility.HtmlDecode(WebCodes); 
    443 return WebCodes; 
    444 } 
    445 
    446 
    447 #region 取指定文件的后缀名 
    448 /// <summary> 
    449 /// 取指定文件的后缀名 
    450 /// </summary> 
    451 /// <param name="PicName">文件名或文件路径</param> 
    452 /// <returns></returns> 
    453 public static string GetPicType(string PicName) 
    454 { 
    455 return Path.GetExtension(PicName); 
    456 } 
    457 #endregion 
    458 
    459 #region 取指定地址的域名,返回结果中在域名前加了http:// 
    460 /// <summary> 
    461 /// 取指定地址的域名,返回结果中在域名前加了http:// 
    462 /// </summary> 
    463 /// <param name="Url">指定的地址</param> 
    464 /// <returns></returns> 
    465 public static string GetDomain(string Url) 
    466 { 
    467 try 
    468 { 
    469 Uri MyUrl = new Uri(Url); 
    470 return "http://" + MyUrl.Host; 
    471 } 
    472 catch 
    473 { 
    474 return ""; 
    475 } 
    476 } 
    477 #endregion 
    478 
    479 #region 复制文件夹(及文件夹下所有子文件夹和文件) 
    480 /// <summary> 
    481 /// 复制文件夹(及文件夹下所有子文件夹和文件) 
    482 /// </summary> 
    483 /// <param name="sourcePath">待复制的文件夹路径</param> 
    484 /// <param name="destinationPath">目标路径</param> 
    485 public static void CopyDirectory(String sourcePath, String destinationPath) 
    486 { 
    487 DirectoryInfo info = new DirectoryInfo(sourcePath); 
    488 Directory.CreateDirectory(destinationPath); 
    489 foreach (FileSystemInfo fsi in info.GetFileSystemInfos()) 
    490 { 
    491 String destName = Path.Combine(destinationPath, fsi.Name); 
    492 
    493 if (fsi is System.IO.FileInfo) //如果是文件,复制文件 
    494 File.Copy(fsi.FullName, destName, true); 
    495 else //如果是文件夹,新建文件夹,递归 
    496 { 
    497 Directory.CreateDirectory(destName); 
    498 CopyDirectory(fsi.FullName, destName); 
    499 } 
    500 } 
    501 } 
    502 #endregion 
    503 
    504 #region 删除文件夹(及文件夹下所有子文件夹和文件) 
    505 /// <summary> 
    506 /// 删除文件夹(及文件夹下所有子文件夹和文件) 
    507 /// </summary> 
    508 /// <param name="directoryPath"></param> 
    509 public static void DeleteFolder(string directoryPath) 
    510 { 
    511 foreach (string d in Directory.GetFileSystemEntries(directoryPath)) 
    512 { 
    513 if (File.Exists(d)) 
    514 { 
    515 FileInfo fi = new FileInfo(d); 
    516 if (fi.Attributes.ToString().IndexOf("ReadOnly") != -1) 
    517 fi.Attributes = FileAttributes.Normal; 
    518 File.Delete(d); //删除文件 
    519 } 
    520 else 
    521 DeleteFolder(d); //删除文件夹 
    522 } 
    523 Directory.Delete(directoryPath); //删除空文件夹 
    524 } 
    525 #endregion 
    526 
    527 #region 把内容替换为纯文本 
    528 /// <summary> 
    529 /// 把内容替换为纯文本 
    530 /// </summary> 
    531 /// <param name="para">要处理的字符串</param> 
    532 /// <returns></returns> 
    533 public static string FilterTxtContent(string para) 
    534 { 
    535 if (para == "") 
    536 return ""; 
    537 para = MyFilter(para, @" " + vbCrlf + "'" + vbCrlf + "
    " + vbCrlf + "<.+?>" + vbCrlf + @"s*", " " + vbCrlf + ""); 
    538 return para; 
    539 } 
    540 #endregion 
    541 
    542 
    543 #region 将相对地址转换为绝对地址 
    544 /// <summary> 
    545 /// 将相对地址转换为绝对地址 
    546 /// </summary> 
    547 /// <param name="PrimitiveUrl">要转换的相对地址</param> 
    548 /// <param name="ConsultUrl">当前网页地址</param> 
    549 /// <returns></returns> 
    550 public static string DefiniteUrl(string PrimitiveUrl, string ConsultUrl) 
    551 { 
    552 try 
    553 { 
    554 Uri baseUri = new Uri(ConsultUrl); 
    555 Uri myUri = new Uri(baseUri, PrimitiveUrl); 
    556 return myUri.AbsoluteUri; 
    557 } 
    558 catch 
    559 { return ""; } 
    560 } 
    561 #endregion 
    562 
    563 
    564 
    565 #region 过滤域名 
    566 /// <summary> 
    567 /// 过滤域名 
    568 /// </summary> 
    569 /// <param name="ConStr">要过滤的内容</param> 
    570 /// <param name="Url">过滤的地址</param> 
    571 /// <returns></returns> 
    572 private static string FilterDomain(string ConStr, string Url) 
    573 { 
    574 try 
    575 { 
    576 Uri MyUri = new Uri(Url); 
    577 string Domain = MyUri.Host; 
    578 ConStr = MyFilter(ConStr, "http://" + Domain + vbCrlf + Domain); 
    579 return ConStr; 
    580 } 
    581 catch 
    582 { 
    583 return ConStr; 
    584 } 
    585 
    586 } 
    587 #endregion 
    588 
    589 #region 删除指定文件 
    590 /// <summary> 
    591 /// 删除指定文件 
    592 /// </summary> 
    593 /// <param name="filePath">文件路径</param> 
    594 /// <returns>成功返回True,失败返回False</returns> 
    595 public static bool DelFile(string filePath) 
    596 { 
    597 try 
    598 { 
    599 FileInfo file = new FileInfo(filePath); 
    600 if (file.Exists == true) 
    601 { 
    602 File.Delete(filePath); 
    603 return true; 
    604 } 
    605 else 
    606 { 
    607 return false; 
    608 } 
    609 
    610 } 
    611 catch 
    612 { 
    613 return false; 
    614 } 
    615 } 
    616 #endregion 
    617 
    618 
    619 #region 时间戳转为C#格式时间 
    620 /// <summary> 
    621 /// 时间戳转为C#格式时间 
    622 /// </summary> 
    623 /// <param name=”timeStamp”></param> 
    624 /// <returns></returns> 
    625 public static DateTime GetTime(string timeStamp) 
    626 { 
    627 DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); 
    628 long lTime = long.Parse(timeStamp + "0000000"); 
    629 TimeSpan toNow = new TimeSpan(lTime); return dtStart.Add(toNow); 
    630 } 
    631 #endregion 
    632 
    633 #region DateTime时间格式转换为Unix时间戳格式 
    634 /// <summary> 
    635 /// DateTime时间格式转换为Unix时间戳格式 
    636 /// </summary> 
    637 /// <param name=”time”></param> 
    638 /// <returns></returns> 
    639 public static int ConvertDateTimeInt(System.DateTime time) 
    640 { 
    641 System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); 
    642 return (int)(time - startTime).TotalSeconds; 
    643 } 
    644 #endregion 
    645 
    646 #region 创建文件夹 
    647 /// <summary> 
    648 /// 创建文件夹 
    649 /// </summary> 
    650 /// <param name="DirPath">文件夹路径</param> 
    651 public static bool CreateFolder(string DirPath) 
    652 { 
    653 try 
    654 { 
    655 if (Directory.Exists(Path.GetDirectoryName(DirPath)) == false) 
    656 { 
    657 Directory.CreateDirectory(Path.GetDirectoryName(DirPath)); 
    658 return true; 
    659 } 
    660 else 
    661 return false; 
    662 } 
    663 catch 
    664 { 
    665 return false; 
    666 } 
    667 } 
    668 #endregion 
    669 
    670 #region 读取web.config APPSiteting的值 
    671 /// <summary> 
    672 /// 读取web.config APPSiteting的值 
    673 /// </summary> 
    674 /// <param name="name"></param> 
    675 /// <returns></returns> 
    676 public static string ReadAppSitting(string name) 
    677 { 
    678 try 
    679 { 
    680 return WebConfigurationManager.AppSettings[name]; 
    681 } 
    682 catch (Exception) 
    683 { 
    684 
    685 return ""; 
    686 } 
    687 } 
    688 #endregion 
    689 
    690 #region 修改添加web.config APPSiteting的值 
    691 /// <summary> 
    692 /// 修改添加web.config APPSiteting的值 
    693 /// </summary> 
    694 /// <param name="key">键名</param> 
    695 /// <param name="value">键值</param> 
    696 public static bool ModifyAppSetings(string key, string value) 
    697 { 
    698 try 
    699 { 
    700 Configuration configuration = WebConfigurationManager.OpenWebConfiguration("~"); 
    701 AppSettingsSection appSettingsSection = (AppSettingsSection)configuration.GetSection("appSettings"); 
    702 if (appSettingsSection != null) 
    703 { 
    704 if (appSettingsSection.Settings[key] != null) 
    705 appSettingsSection.Settings[key].Value = value; 
    706 else 
    707 { 
    708 appSettingsSection.Settings.Add(key, value); 
    709 } 
    710 configuration.Save(); 
    711 return true; 
    712 } 
    713 else 
    714 return false; 
    715 } 
    716 catch (Exception) 
    717 { 
    718 
    719 return false; 
    720 } 
    721 } 
    722 #endregion 
    723 
    724 #region 获取Bootstrap分页 
    725 /// <summary> 
    726 /// 获取Bootstrap分页 
    727 /// </summary> 
    728 /// <param name="RsCount">总记录数</param> 
    729 /// <param name="PageSize">分页大小</param> 
    730 /// <param name="CurrentPage">当前页</param> 
    731 /// <param name="PageUrl">当前地址</param> 
    732 /// <returns></returns> 
    733 public static string GetPageStr(int RsCount, int PageSize, int CurrentPage, string PageUrl) 
    734 { 
    735 string PageStr = ""; 
    736 if (RsCount > 0) 
    737 { 
    738 
    739 int PageCount = (int)System.Math.Ceiling((double)RsCount / PageSize); 
    740 int k = CurrentPage; 
    741 int m = 1, n = 10; 
    742 if (k <= 5) 
    743 { 
    744 if (PageCount <= 10) 
    745 n = PageCount; 
    746 else 
    747 n = 10; 
    748 } 
    749 else 
    750 { 
    751 m = k - 5; 
    752 n = k + 5; 
    753 if (n > PageCount) 
    754 { 
    755 n = PageCount; 
    756 m = n - 10; 
    757 if (m < 1) m = 1; 
    758 } 
    759 } 
    760 string SubPageUrl = PageUrl + "/"; 
    761 
    762 PageStr = PageStr + "<li><a href="" + PageUrl + "">首页</a></li>"; 
    763 string LastPage = ""; 
    764 if (CurrentPage == 1) 
    765 LastPage = "<li class="disabled"><a href="#">«</a></li>"; 
    766 else 
    767 LastPage = "<li><a href="" + SubPageUrl + (CurrentPage - 1) + "">«</a></li>"; 
    768 PageStr = PageStr + LastPage; 
    769 for (int t = m; t <= n; t++) 
    770 { 
    771 if (t == CurrentPage) 
    772 PageStr = PageStr + "<li class="active"><a href="#">" + t + "<span class="sr-only">(current)</span></a></li>"; 
    773 else 
    774 PageStr = PageStr + "<li><a href="" + SubPageUrl + t + "">" + t + "</a></li>"; 
    775 
    776 } 
    777 string NextPage = ""; 
    778 if (CurrentPage == PageCount) 
    779 NextPage = "<li class="disabled"><a href="#">»</a></li>"; 
    780 else 
    781 NextPage = "<li><a href="" + SubPageUrl + (CurrentPage + 1) + "">»</a></li>"; 
    782 PageStr = PageStr + NextPage + "<li><a href="" + SubPageUrl + PageCount + "">尾页</a></li>"; 
    783 
    784 } 
    785 return PageStr; 
    786 } 
    787 #endregion 
    788 
    789 #region 获取Metro分页 
    790 
    791 public static string GetMetroPageStr(int RsCount, int PageSize, int CurrentPage, string PageUrl) 
    792 { 
    793 string PreFix = GetPicType(PageUrl); 
    794 string split = "_"; 
    795 if (!string.IsNullOrEmpty(PreFix)) 
    796 { 
    797 PageUrl = PageUrl.Replace(PreFix, ""); 
    798 } 
    799 else 
    800 { 
    801 split = "/"; 
    802 } 
    803 int PageCount = (int)System.Math.Ceiling((double)RsCount / PageSize); 
    804 int k = CurrentPage; 
    805 int m = 1, n = 10; 
    806 if (k <= 5) 
    807 { 
    808 if (PageCount <= 10) 
    809 n = PageCount; 
    810 else 
    811 n = 10; 
    812 } 
    813 else 
    814 { 
    815 m = k - 5; 
    816 n = k + 5; 
    817 if (n > PageCount) 
    818 { 
    819 n = PageCount; 
    820 m = n - 10; 
    821 if (m < 1) m = 1; 
    822 } 
    823 } 
    824 string SubPageUrl = PageUrl; 
    825 string PageStr = ""; 
    826 PageStr = PageStr + "<li class="first"><a href="" + PageUrl + PreFix + ""><i class="icon-first-2"></i></a></li>"; 
    827 string LastPage = ""; 
    828 if (CurrentPage == 1) 
    829 LastPage = "<li class="prev disabled"><a><i class="icon-previous"></i></a></li>"; 
    830 else 
    831 LastPage = "<li class="prev"><a href="" + SubPageUrl + split + (CurrentPage - 1) + PreFix + ""><i class="icon-previous"></i></a></li>"; 
    832 PageStr = PageStr + LastPage; 
    833 for (int t = m; t <= n; t++) 
    834 { 
    835 if (t == CurrentPage) 
    836 PageStr = PageStr + "<li class="active"><a href="#"><i>" + t + "</i></a></li>"; 
    837 else 
    838 { 
    839 if (t == 1) 
    840 { 
    841 PageStr = PageStr + "<li><a href="" + SubPageUrl + PreFix + ""><i>" + t + "</i></a></li>"; 
    842 } 
    843 else 
    844 { 
    845 PageStr = PageStr + "<li><a href="" + SubPageUrl + split + t + PreFix + ""><i>" + t + "</i></a></li>"; 
    846 } 
    847 
    848 } 
    849 
    850 } 
    851 string NextPage = ""; 
    852 if (CurrentPage == PageCount) 
    853 NextPage = "<li class="next disabled"><a><i class="icon-next"></i></a></li>"; 
    854 else 
    855 NextPage = "<li class="next"><a href="" + SubPageUrl + split + (CurrentPage + 1) + PreFix + ""><i class="icon-next"></i></a></li>"; 
    856 PageStr = PageStr + NextPage + "<li class="last"><a href="" + SubPageUrl + split + PageCount + PreFix + ""><i class="icon-last-2"></i></a></li>"; 
    857 return PageStr; 
    858 } 
    859 #endregion 
    860 
    861 #region 产生指定范围的随机数 
    862 /// <summary> 
    863 /// 产生指定范围的随机数 
    864 /// </summary> 
    865 /// <param name="low">最小数</param> 
    866 /// <param name="uper">最大数</param> 
    867 /// <param name="k">参数</param> 
    868 /// <returns></returns> 
    869 public static int MakeRnd(int low, int uper, int k = 10) 
    870 { 
    871 Random rd = new Random(k); 
    872 return rd.Next(low, uper); 
    873 } 
    874 #endregion 
    875 
    876 public static List<string> GetFiles(string path) 
    877 { 
    878 List<string> dir = Directory.GetDirectories(path).ToList(); 
    879 List<string> files = Directory.GetFiles(path).ToList(); 
    880 List<string> fileNames = new List<string>(); 
    881 foreach (string file in files) { fileNames.Add(Path.GetFileName(file)); } 
    882 foreach (string item in dir) 
    883 { 
    884 List<string> subFileNames = GetFiles(item); 
    885 fileNames.AddRange(subFileNames); 
    886 } 
    887 return fileNames; 
    888 } 
    889 
    890 } 
    891 
    892 } 
  • 相关阅读:
    项目使用 GlobalExceptionHandler 与 @RestControllerAdvice自定义异常 二
    spring,springBoot配置类型转化器Converter以及FastJsonHttpMessageConverter,StringHttpMessageConverter 使用
    项目使用 GlobalExceptionHandler 自定义异常 一
    idea 解决git更新冲突
    @JsonIgnore 失效没起作用及 @JSONField(serialize = false)
    Don't Sleep --- 阻止电脑休眠、睡眠小工具
    Win10 一键启用&禁用以太网bat命令
    如何将Chrome插件扩展下载到本地
    PC WorkBreak --- 在您使用 PC 时照顾您的健康工具
    闪电下载器
  • 原文地址:https://www.cnblogs.com/bolanbujing/p/4289842.html
Copyright © 2020-2023  润新知