C# 常用的操作文件夹的方法
作者:互联网
1 #region 检测指定目录是否存在 2 /// <summary> 3 /// 检测指定目录是否存在 4 /// </summary> 5 /// <param name="directoryPath">目录的绝对路径</param> 6 /// <returns>bool</returns> 7 public static bool IsExistDirectory(string directoryPath) 8 { 9 return Directory.Exists(directoryPath); 10 } 11 #endregion 12 13 #region 检测指定文件是否存在,如果存在返回true 14 /// <summary> 15 /// 检测指定文件是否存在,如果存在则返回true。 16 /// </summary> 17 /// <param name="filePath">文件的绝对路径</param> 18 public static bool IsExistFile(string filePath) 19 { 20 return File.Exists(filePath); 21 } 22 #endregion 23 24 #region 获取指定目录中的文件列表 25 /// <summary> 26 /// 获取指定目录中所有文件列表 27 /// </summary> 28 /// <param name="directoryPath">指定目录的绝对路径</param> 29 public static string[] GetFileNames(string directoryPath) 30 { 31 //如果目录不存在,则抛出异常 32 if (!IsExistDirectory(directoryPath)) 33 { 34 throw new FileNotFoundException(); 35 } 36 37 //获取文件列表 38 return Directory.GetFiles(directoryPath); 39 } 40 #endregion 41 42 #region 获取指定目录中所有子目录列表,若要搜索嵌套的子目录列表,请使用重载方法. 43 /// <summary> 44 /// 获取指定目录中所有子目录列表,若要搜索嵌套的子目录列表,请使用重载方法. 45 /// </summary> 46 /// <param name="directoryPath">指定目录的绝对路径</param> 47 public static string[] GetDirectories(string directoryPath) 48 { 49 try 50 { 51 return Directory.GetDirectories(directoryPath); 52 } 53 catch (IOException ex) 54 { 55 throw ex; 56 } 57 } 58 #endregion 59 60 #region 获取指定目录及子目录中所有文件列表 61 /// <summary> 62 /// 获取指定目录及子目录中所有文件列表 63 /// </summary> 64 /// <param name="directoryPath">指定目录的绝对路径</param> 65 /// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字符。 66 /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。</param> 67 /// <param name="isSearchChild">是否搜索子目录</param> 68 public static string[] GetFileNames(string directoryPath, string searchPattern, bool isSearchChild) 69 { 70 //如果目录不存在,则抛出异常 71 if (!IsExistDirectory(directoryPath)) 72 { 73 throw new FileNotFoundException(); 74 } 75 76 try 77 { 78 if (isSearchChild) 79 { 80 return Directory.GetFiles(directoryPath, searchPattern, SearchOption.AllDirectories); 81 } 82 else 83 { 84 return Directory.GetFiles(directoryPath, searchPattern, SearchOption.TopDirectoryOnly); 85 } 86 } 87 catch (IOException ex) 88 { 89 throw ex; 90 } 91 } 92 #endregion 93 94 #region 检测指定目录是否为空 95 /// <summary> 96 /// 检测指定目录是否为空 97 /// </summary> 98 /// <param name="directoryPath">指定目录的绝对路径</param> 99 public static bool IsEmptyDirectory(string directoryPath) 100 { 101 try 102 { 103 //判断是否存在文件 104 string[] fileNames = GetFileNames(directoryPath); 105 if (fileNames.Length > 0) 106 { 107 return false; 108 } 109 110 //判断是否存在文件夹 111 string[] directoryNames = GetDirectories(directoryPath); 112 if (directoryNames.Length > 0) 113 { 114 return false; 115 } 116 117 return true; 118 } 119 catch 120 { 121 //这里记录日志 122 //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message); 123 return true; 124 } 125 } 126 #endregion 127 128 #region 检测指定目录中是否存在指定的文件 129 /// <summary> 130 /// 检测指定目录中是否存在指定的文件,若要搜索子目录请使用重载方法. 131 /// </summary> 132 /// <param name="directoryPath">指定目录的绝对路径</param> 133 /// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字符。 134 /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。</param> 135 public static bool Contains(string directoryPath, string searchPattern) 136 { 137 try 138 { 139 //获取指定的文件列表 140 string[] fileNames = GetFileNames(directoryPath, searchPattern, false); 141 142 //判断指定文件是否存在 143 if (fileNames.Length == 0) 144 { 145 return false; 146 } 147 else 148 { 149 return true; 150 } 151 } 152 catch (Exception ex) 153 { 154 throw new Exception(ex.Message); 155 //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message); 156 } 157 } 158 159 /// <summary> 160 /// 检测指定目录中是否存在指定的文件 161 /// </summary> 162 /// <param name="directoryPath">指定目录的绝对路径</param> 163 /// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字符。 164 /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。</param> 165 /// <param name="isSearchChild">是否搜索子目录</param> 166 public static bool Contains(string directoryPath, string searchPattern, bool isSearchChild) 167 { 168 try 169 { 170 //获取指定的文件列表 171 string[] fileNames = GetFileNames(directoryPath, searchPattern, true); 172 173 //判断指定文件是否存在 174 if (fileNames.Length == 0) 175 { 176 return false; 177 } 178 else 179 { 180 return true; 181 } 182 } 183 catch (Exception ex) 184 { 185 throw new Exception(ex.Message); 186 //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message); 187 } 188 } 189 #endregion 190 191 #region 创建目录 192 /// <summary> 193 /// 创建目录 194 /// </summary> 195 /// <param name="dir">要创建的目录路径包括目录名</param> 196 public static void CreateDir(string dir) 197 { 198 if (dir.Length == 0) return; 199 if (!Directory.Exists(HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir)) 200 Directory.CreateDirectory(HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir); 201 } 202 #endregion 203 204 #region 删除目录 205 /// <summary> 206 /// 删除目录 207 /// </summary> 208 /// <param name="dir">要删除的目录路径和名称</param> 209 public static void DeleteDir(string dir) 210 { 211 if (dir.Length == 0) return; 212 if (Directory.Exists(HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir)) 213 Directory.Delete(HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir); 214 } 215 #endregion 216 217 #region 删除文件 218 /// <summary> 219 /// 删除文件 220 /// </summary> 221 /// <param name="file">要删除的文件路径和名称</param> 222 public static void DeleteFile(string file) 223 { 224 if (File.Exists(HttpContext.Current.Request.PhysicalApplicationPath + file)) 225 { 226 File.Delete(HttpContext.Current.Request.PhysicalApplicationPath + file); 227 } 228 } 229 #endregion 230 231 #region 创建文件 232 /// <summary> 233 /// 创建文件 234 /// </summary> 235 /// <param name="dir">带后缀的文件名</param> 236 /// <param name="pagestr">文件内容</param> 237 public static void CreateFile(string dir, string pagestr) 238 { 239 dir = dir.Replace("/", "\\"); 240 if (dir.IndexOf("\\") > -1) 241 CreateDir(dir.Substring(0, dir.LastIndexOf("\\"))); 242 StreamWriter sw = new StreamWriter(HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir, false, System.Text.Encoding.GetEncoding("GB2312")); 243 sw.Write(pagestr); 244 sw.Close(); 245 } 246 /// <summary> 247 /// 创建文件 248 /// </summary> 249 /// <param name="path">路径</param> 250 /// <param name="content">内容</param> 251 public static void CreateFileContent(string path, string content) 252 { 253 FileInfo fi = new FileInfo(path); 254 var di = fi.Directory; 255 if (!di.Exists) 256 { 257 di.Create(); 258 } 259 StreamWriter sw = new StreamWriter(path, false, System.Text.Encoding.GetEncoding("GB2312")); 260 sw.Write(content); 261 sw.Close(); 262 } 263 #endregion 264 265 #region 移动文件(剪贴--粘贴) 266 /// <summary> 267 /// 移动文件(剪贴--粘贴) 268 /// </summary> 269 /// <param name="dir1">要移动的文件的路径及全名(包括后缀)</param> 270 /// <param name="dir2">文件移动到新的位置,并指定新的文件名</param> 271 public static void MoveFile(string dir1, string dir2) 272 { 273 dir1 = dir1.Replace("/", "\\"); 274 dir2 = dir2.Replace("/", "\\"); 275 if (File.Exists(HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir1)) 276 File.Move(HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir1, HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir2); 277 } 278 #endregion 279 280 #region 复制文件 281 /// <summary> 282 /// 复制文件 283 /// </summary> 284 /// <param name="dir1">要复制的文件的路径已经全名(包括后缀)</param> 285 /// <param name="dir2">目标位置,并指定新的文件名</param> 286 public static void CopyFile(string dir1, string dir2) 287 { 288 dir1 = dir1.Replace("/", "\\"); 289 dir2 = dir2.Replace("/", "\\"); 290 if (File.Exists(HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir1)) 291 { 292 File.Copy(HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir1, HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir2, true); 293 } 294 } 295 #endregion 296 297 #region 根据时间得到目录名 / 格式:yyyyMMdd 或者 HHmmssff 298 /// <summary> 299 /// 根据时间得到目录名yyyyMMdd 300 /// </summary> 301 /// <returns></returns> 302 public static string GetDateDir() 303 { 304 return DateTime.Now.ToString("yyyyMMdd"); 305 } 306 /// <summary> 307 /// 根据时间得到文件名HHmmssff 308 /// </summary> 309 /// <returns></returns> 310 public static string GetDateFile() 311 { 312 return DateTime.Now.ToString("HHmmssff"); 313 } 314 #endregion 315 316 #region 根据时间获取指定路径的 后缀名的 的所有文件 317 /// <summary> 318 /// 根据时间获取指定路径的 后缀名的 的所有文件 319 /// </summary> 320 /// <param name="path">文件路径</param> 321 /// <param name="Extension">后缀名 比如.txt</param> 322 /// <returns></returns> 323 public static DataRow[] GetFilesByTime(string path, string Extension) 324 { 325 if (Directory.Exists(path)) 326 { 327 string fielExts = string.Format("*{0}", Extension); 328 string[] files = Directory.GetFiles(path, fielExts); 329 if (files.Length > 0) 330 { 331 DataTable table = new DataTable(); 332 table.Columns.Add(new DataColumn("filename", Type.GetType("System.String"))); 333 table.Columns.Add(new DataColumn("createtime", Type.GetType("System.DateTime"))); 334 for (int i = 0; i < files.Length; i++) 335 { 336 DataRow row = table.NewRow(); 337 DateTime creationTime = File.GetCreationTime(files[i]); 338 string fileName = Path.GetFileName(files[i]); 339 row["filename"] = fileName; 340 row["createtime"] = creationTime; 341 table.Rows.Add(row); 342 } 343 return table.Select(string.Empty, "createtime desc"); 344 } 345 } 346 return new DataRow[0]; 347 } 348 #endregion 349 350 #region 复制文件夹 351 /// <summary> 352 /// 复制文件夹(递归) 353 /// </summary> 354 /// <param name="varFromDirectory">源文件夹路径</param> 355 /// <param name="varToDirectory">目标文件夹路径</param> 356 public static void CopyFolder(string varFromDirectory, string varToDirectory) 357 { 358 Directory.CreateDirectory(varToDirectory); 359 360 if (!Directory.Exists(varFromDirectory)) return; 361 362 string[] directories = Directory.GetDirectories(varFromDirectory); 363 364 if (directories.Length > 0) 365 { 366 foreach (string d in directories) 367 { 368 CopyFolder(d, varToDirectory + d.Substring(d.LastIndexOf("\\"))); 369 } 370 } 371 string[] files = Directory.GetFiles(varFromDirectory); 372 if (files.Length > 0) 373 { 374 foreach (string s in files) 375 { 376 File.Copy(s, varToDirectory + s.Substring(s.LastIndexOf("\\")), true); 377 } 378 } 379 } 380 #endregion 381 382 #region 检查文件,如果文件不存在则创建 383 /// <summary> 384 /// 检查文件,如果文件不存在则创建 385 /// </summary> 386 /// <param name="FilePath">路径,包括文件名</param> 387 public static void ExistsFile(string FilePath) 388 { 389 //if(!File.Exists(FilePath)) 390 //File.Create(FilePath); 391 //以上写法会报错,详细解释请看下文......... 392 if (!File.Exists(FilePath)) 393 { 394 FileStream fs = File.Create(FilePath); 395 fs.Close(); 396 } 397 } 398 #endregion 399 400 #region 删除指定文件夹对应其他文件夹里的文件 401 /// <summary> 402 /// 删除指定文件夹对应其他文件夹里的文件 403 /// </summary> 404 /// <param name="varFromDirectory">指定文件夹路径</param> 405 /// <param name="varToDirectory">对应其他文件夹路径</param> 406 public static void DeleteFolderFiles(string varFromDirectory, string varToDirectory) 407 { 408 Directory.CreateDirectory(varToDirectory); 409 410 if (!Directory.Exists(varFromDirectory)) return; 411 412 string[] directories = Directory.GetDirectories(varFromDirectory); 413 414 if (directories.Length > 0) 415 { 416 foreach (string d in directories) 417 { 418 DeleteFolderFiles(d, varToDirectory + d.Substring(d.LastIndexOf("\\"))); 419 } 420 } 421 422 string[] files = Directory.GetFiles(varFromDirectory); 423 424 if (files.Length > 0) 425 { 426 foreach (string s in files) 427 { 428 File.Delete(varToDirectory + s.Substring(s.LastIndexOf("\\"))); 429 } 430 } 431 } 432 #endregion 433 434 #region 从文件的绝对路径中获取文件名( 包含扩展名 ) 435 /// <summary> 436 /// 从文件的绝对路径中获取文件名( 包含扩展名 ) 437 /// </summary> 438 /// <param name="filePath">文件的绝对路径</param> 439 public static string GetFileName(string filePath) 440 { 441 //获取文件的名称 442 FileInfo fi = new FileInfo(filePath); 443 return fi.Name; 444 } 445 #endregion 446 447 #region 复制文件参考方法,页面中引用 448 /// <summary> 449 /// 复制文件参考方法,页面中引用 450 /// </summary> 451 /// <param name="cDir">新路径</param> 452 /// <param name="TempId">模板引擎替换编号</param> 453 public static void CopyFiles(string cDir, string TempId) 454 { 455 //if (Directory.Exists(Request.PhysicalApplicationPath + "\\Controls")) 456 //{ 457 // string TempStr = string.Empty; 458 // StreamWriter sw; 459 // if (File.Exists(Request.PhysicalApplicationPath + "\\Controls\\Default.aspx")) 460 // { 461 // TempStr = File.ReadAllText(Request.PhysicalApplicationPath + "\\Controls\\Default.aspx"); 462 // TempStr = TempStr.Replace("{$ChannelId$}", TempId); 463 464 // sw = new StreamWriter(Request.PhysicalApplicationPath + "\\" + cDir + "\\Default.aspx", false, System.Text.Encoding.GetEncoding("GB2312")); 465 // sw.Write(TempStr); 466 // sw.Close(); 467 // } 468 // if (File.Exists(Request.PhysicalApplicationPath + "\\Controls\\Column.aspx")) 469 // { 470 // TempStr = File.ReadAllText(Request.PhysicalApplicationPath + "\\Controls\\Column.aspx"); 471 // TempStr = TempStr.Replace("{$ChannelId$}", TempId); 472 473 // sw = new StreamWriter(Request.PhysicalApplicationPath + "\\" + cDir + "\\List.aspx", false, System.Text.Encoding.GetEncoding("GB2312")); 474 // sw.Write(TempStr); 475 // sw.Close(); 476 // } 477 // if (File.Exists(Request.PhysicalApplicationPath + "\\Controls\\Content.aspx")) 478 // { 479 // TempStr = File.ReadAllText(Request.PhysicalApplicationPath + "\\Controls\\Content.aspx"); 480 // TempStr = TempStr.Replace("{$ChannelId$}", TempId); 481 482 // sw = new StreamWriter(Request.PhysicalApplicationPath + "\\" + cDir + "\\View.aspx", false, System.Text.Encoding.GetEncoding("GB2312")); 483 // sw.Write(TempStr); 484 // sw.Close(); 485 // } 486 // if (File.Exists(Request.PhysicalApplicationPath + "\\Controls\\MoreDiss.aspx")) 487 // { 488 // TempStr = File.ReadAllText(Request.PhysicalApplicationPath + "\\Controls\\MoreDiss.aspx"); 489 // TempStr = TempStr.Replace("{$ChannelId$}", TempId); 490 491 // sw = new StreamWriter(Request.PhysicalApplicationPath + "\\" + cDir + "\\DissList.aspx", false, System.Text.Encoding.GetEncoding("GB2312")); 492 // sw.Write(TempStr); 493 // sw.Close(); 494 // } 495 // if (File.Exists(Request.PhysicalApplicationPath + "\\Controls\\ShowDiss.aspx")) 496 // { 497 // TempStr = File.ReadAllText(Request.PhysicalApplicationPath + "\\Controls\\ShowDiss.aspx"); 498 // TempStr = TempStr.Replace("{$ChannelId$}", TempId); 499 500 // sw = new StreamWriter(Request.PhysicalApplicationPath + "\\" + cDir + "\\Diss.aspx", false, System.Text.Encoding.GetEncoding("GB2312")); 501 // sw.Write(TempStr); 502 // sw.Close(); 503 // } 504 // if (File.Exists(Request.PhysicalApplicationPath + "\\Controls\\Review.aspx")) 505 // { 506 // TempStr = File.ReadAllText(Request.PhysicalApplicationPath + "\\Controls\\Review.aspx"); 507 // TempStr = TempStr.Replace("{$ChannelId$}", TempId); 508 509 // sw = new StreamWriter(Request.PhysicalApplicationPath + "\\" + cDir + "\\Review.aspx", false, System.Text.Encoding.GetEncoding("GB2312")); 510 // sw.Write(TempStr); 511 // sw.Close(); 512 // } 513 // if (File.Exists(Request.PhysicalApplicationPath + "\\Controls\\Search.aspx")) 514 // { 515 // TempStr = File.ReadAllText(Request.PhysicalApplicationPath + "\\Controls\\Search.aspx"); 516 // TempStr = TempStr.Replace("{$ChannelId$}", TempId); 517 518 // sw = new StreamWriter(Request.PhysicalApplicationPath + "\\" + cDir + "\\Search.aspx", false, System.Text.Encoding.GetEncoding("GB2312")); 519 // sw.Write(TempStr); 520 // sw.Close(); 521 // } 522 //} 523 } 524 #endregion 525 526 #region 创建一个目录 527 /// <summary> 528 /// 创建一个目录 529 /// </summary> 530 /// <param name="directoryPath">目录的绝对路径</param> 531 public static void CreateDirectory(string directoryPath) 532 { 533 //如果目录不存在则创建该目录 534 if (!IsExistDirectory(directoryPath)) 535 { 536 Directory.CreateDirectory(directoryPath); 537 } 538 } 539 #endregion 540 541 #region 创建一个文件 542 /// <summary> 543 /// 创建一个文件。 544 /// </summary> 545 /// <param name="filePath">文件的绝对路径</param> 546 public static void CreateFile(string filePath) 547 { 548 try 549 { 550 //如果文件不存在则创建该文件 551 if (!IsExistFile(filePath)) 552 { 553 //创建一个FileInfo对象 554 FileInfo file = new FileInfo(filePath); 555 556 //创建文件 557 FileStream fs = file.Create(); 558 559 //关闭文件流 560 fs.Close(); 561 } 562 } 563 catch (Exception ex) 564 { 565 //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message); 566 throw ex; 567 } 568 } 569 570 /// <summary> 571 /// 创建一个文件,并将字节流写入文件。 572 /// </summary> 573 /// <param name="filePath">文件的绝对路径</param> 574 /// <param name="buffer">二进制流数据</param> 575 public static void CreateFile(string filePath, byte[] buffer) 576 { 577 try 578 { 579 //如果文件不存在则创建该文件 580 if (!IsExistFile(filePath)) 581 { 582 //创建一个FileInfo对象 583 FileInfo file = new FileInfo(filePath); 584 585 //创建文件 586 FileStream fs = file.Create(); 587 588 //写入二进制流 589 fs.Write(buffer, 0, buffer.Length); 590 591 //关闭文件流 592 fs.Close(); 593 } 594 } 595 catch (Exception ex) 596 { 597 //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message); 598 throw ex; 599 } 600 } 601 #endregion 602 603 #region 获取文本文件的行数 604 /// <summary> 605 /// 获取文本文件的行数 606 /// </summary> 607 /// <param name="filePath">文件的绝对路径</param> 608 public static int GetLineCount(string filePath) 609 { 610 //将文本文件的各行读到一个字符串数组中 611 string[] rows = File.ReadAllLines(filePath); 612 613 //返回行数 614 return rows.Length; 615 } 616 #endregion 617 618 #region 获取一个文件的长度 619 /// <summary> 620 /// 获取一个文件的长度,单位为Byte 621 /// </summary> 622 /// <param name="filePath">文件的绝对路径</param> 623 public static long GetFileSize(string filePath) 624 { 625 //创建一个文件对象 626 FileInfo fi = new FileInfo(filePath); 627 628 //获取文件的大小 629 return fi.Length; 630 } 631 #endregion 632 633 #region 获取文件大小并以B,KB,GB,TB 634 /// <summary> 635 /// 计算文件大小函数(保留两位小数),Size为字节大小 636 /// </summary> 637 /// <param name="size">初始文件大小</param> 638 /// <returns></returns> 639 public static string ToFileSize(long size) 640 { 641 string m_strSize = ""; 642 long FactSize = 0; 643 FactSize = size; 644 if (FactSize < 1024.00) 645 m_strSize = FactSize.ToString("F2") + " 字节"; 646 else if (FactSize >= 1024.00 && FactSize < 1048576) 647 m_strSize = (FactSize / 1024.00).ToString("F2") + " KB"; 648 else if (FactSize >= 1048576 && FactSize < 1073741824) 649 m_strSize = (FactSize / 1024.00 / 1024.00).ToString("F2") + " MB"; 650 else if (FactSize >= 1073741824) 651 m_strSize = (FactSize / 1024.00 / 1024.00 / 1024.00).ToString("F2") + " GB"; 652 return m_strSize; 653 } 654 #endregion 655 656 #region 获取指定目录中的子目录列表 657 /// <summary> 658 /// 获取指定目录及子目录中所有子目录列表 659 /// </summary> 660 /// <param name="directoryPath">指定目录的绝对路径</param> 661 /// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字符。 662 /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。</param> 663 /// <param name="isSearchChild">是否搜索子目录</param> 664 public static string[] GetDirectories(string directoryPath, string searchPattern, bool isSearchChild) 665 { 666 try 667 { 668 if (isSearchChild) 669 { 670 return Directory.GetDirectories(directoryPath, searchPattern, SearchOption.AllDirectories); 671 } 672 else 673 { 674 return Directory.GetDirectories(directoryPath, searchPattern, SearchOption.TopDirectoryOnly); 675 } 676 } 677 catch (IOException ex) 678 { 679 throw ex; 680 } 681 } 682 #endregion 683 684 #region 向文本文件写入内容 685 686 /// <summary> 687 /// 向文本文件中写入内容 688 /// </summary> 689 /// <param name="filePath">文件的绝对路径</param> 690 /// <param name="text">写入的内容</param> 691 /// <param name="encoding">编码</param> 692 public static void WriteText(string filePath, string text, Encoding encoding) 693 { 694 //向文件写入内容 695 File.WriteAllText(filePath, text, encoding); 696 } 697 #endregion 698 699 #region 向文本文件的尾部追加内容 700 /// <summary> 701 /// 向文本文件的尾部追加内容 702 /// </summary> 703 /// <param name="filePath">文件的绝对路径</param> 704 /// <param name="content">写入的内容</param> 705 public static void AppendText(string filePath, string content) 706 { 707 File.AppendAllText(filePath, content); 708 } 709 #endregion 710 711 #region 将现有文件的内容复制到新文件中 712 /// <summary> 713 /// 将源文件的内容复制到目标文件中 714 /// </summary> 715 /// <param name="sourceFilePath">源文件的绝对路径</param> 716 /// <param name="destFilePath">目标文件的绝对路径</param> 717 public static void Copy(string sourceFilePath, string destFilePath) 718 { 719 File.Copy(sourceFilePath, destFilePath, true); 720 } 721 #endregion 722 723 #region 将文件移动到指定目录 724 /// <summary> 725 /// 将文件移动到指定目录 726 /// </summary> 727 /// <param name="sourceFilePath">需要移动的源文件的绝对路径</param> 728 /// <param name="descDirectoryPath">移动到的目录的绝对路径</param> 729 public static void Move(string sourceFilePath, string descDirectoryPath) 730 { 731 //获取源文件的名称 732 string sourceFileName = GetFileName(sourceFilePath); 733 734 if (IsExistDirectory(descDirectoryPath)) 735 { 736 //如果目标中存在同名文件,则删除 737 if (IsExistFile(descDirectoryPath + "\\" + sourceFileName)) 738 { 739 DeleteFile(descDirectoryPath + "\\" + sourceFileName); 740 } 741 //将文件移动到指定目录 742 File.Move(sourceFilePath, descDirectoryPath + "\\" + sourceFileName); 743 } 744 } 745 #endregion 746 747 #region 从文件的绝对路径中获取文件名( 不包含扩展名 ) 748 /// <summary> 749 /// 从文件的绝对路径中获取文件名( 不包含扩展名 ) 750 /// </summary> 751 /// <param name="filePath">文件的绝对路径</param> 752 public static string GetFileNameNoExtension(string filePath) 753 { 754 //获取文件的名称 755 FileInfo fi = new FileInfo(filePath); 756 return fi.Name.Split('.')[0]; 757 } 758 #endregion 759 760 #region 从文件的绝对路径中获取扩展名 761 /// <summary> 762 /// 从文件的绝对路径中获取扩展名 763 /// </summary> 764 /// <param name="filePath">文件的绝对路径</param> 765 public static string GetExtension(string filePath) 766 { 767 //获取文件的名称 768 FileInfo fi = new FileInfo(filePath); 769 return fi.Extension; 770 } 771 #endregion 772 773 #region 清空指定目录 774 /// <summary> 775 /// 清空指定目录下所有文件及子目录,但该目录依然保存. 776 /// </summary> 777 /// <param name="directoryPath">指定目录的绝对路径</param> 778 public static void ClearDirectory(string directoryPath) 779 { 780 directoryPath = HttpContext.Current.Server.MapPath(directoryPath); 781 if (IsExistDirectory(directoryPath)) 782 { 783 //删除目录中所有的文件 784 string[] fileNames = GetFileNames(directoryPath); 785 for (int i = 0; i < fileNames.Length; i++) 786 { 787 DeleteFile(fileNames[i]); 788 } 789 //删除目录中所有的子目录 790 string[] directoryNames = GetDirectories(directoryPath); 791 for (int i = 0; i < directoryNames.Length; i++) 792 { 793 DeleteDirectory(directoryNames[i]); 794 } 795 } 796 } 797 #endregion 798 799 #region 清空文件内容 800 /// <summary> 801 /// 清空文件内容 802 /// </summary> 803 /// <param name="filePath">文件的绝对路径</param> 804 public static void ClearFile(string filePath) 805 { 806 //删除文件 807 File.Delete(filePath); 808 809 //重新创建该文件 810 CreateFile(filePath); 811 } 812 #endregion 813 814 #region 删除指定目录 815 /// <summary> 816 /// 删除指定目录及其所有子目录 817 /// </summary> 818 /// <param name="directoryPath">指定目录的绝对路径</param> 819 public static void DeleteDirectory(string directoryPath) 820 { 821 directoryPath = HttpContext.Current.Server.MapPath(directoryPath); 822 if (IsExistDirectory(directoryPath)) 823 { 824 Directory.Delete(directoryPath, true); 825 } 826 } 827 #endregion 828 829 #region 本地路径 830 /// <summary> 831 /// 本地路径 832 /// </summary> 833 /// <param name="path"></param> 834 /// <returns></returns> 835 public static string MapPath(string path) 836 { 837 return HttpContext.Current.Server.MapPath(path); 838 } 839 #endregion
标签:文件,常用,string,endregion,C#,region,文件夹,static,public 来源: https://www.cnblogs.com/yy15611/p/13370552.html