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

 

上一篇:C# 实现 Winform 切换用户功能


下一篇:C# 事件系统(三)