File.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.IO;
  6. using System.Collections;
  7. /// <summary>
  8. /// 文件操作相关工具集
  9. /// </summary>
  10. public partial class Utils
  11. {
  12. /// <summary>
  13. /// 递归遍历文加下所有指定后缀文件
  14. /// </summary>
  15. /// <param name="info"></param>
  16. /// <param name="total">文件列表</param>
  17. /// <param name="opt">文件后缀</param>
  18. public static void ListFiles(string path, ref ArrayList total, string opt)
  19. {
  20. DirectoryInfo dir = new DirectoryInfo(path);
  21. FileSystemInfo[] files = dir.GetFileSystemInfos();
  22. for (int i = 0; i < files.Length; i++)
  23. {
  24. FileInfo file = files[i] as FileInfo;
  25. //是文件
  26. if (file != null)
  27. {
  28. if (file.FullName.Substring(file.FullName.LastIndexOf(".")) == opt)
  29. {
  30. total.Add(file.FullName);
  31. }
  32. }
  33. //对于子目录,进行递归调用
  34. else
  35. {
  36. ListFiles(files[i].FullName, ref total, opt);
  37. }
  38. }
  39. }
  40. /// <summary>
  41. /// 文件夹拷贝
  42. /// </summary>
  43. /// <param name="from">源文件夹</param>
  44. /// <param name="to">目标文件夹</param>
  45. public static void CopyFolder(string from, string to)
  46. {
  47. if (!Directory.Exists(to))
  48. {
  49. Directory.CreateDirectory(to);
  50. }
  51. // 子文件夹
  52. foreach (string sub in Directory.GetDirectories(from))
  53. {
  54. CopyFolder(sub + "\\", to + Path.GetFileName(sub) + "\\");
  55. }
  56. // 文件
  57. foreach (string file in Directory.GetFiles(from))
  58. {
  59. File.Copy(file, to + Path.GetFileName(file), true);
  60. }
  61. }
  62. }