Directory类中包含了CreateDirectory、Move和Delete方法,却唯独没有Copy方法,很是费解,下边我们写个类来实现,思路是利用递归把指定文件夹及其子文件夹中的文件复制到目标文件夹中:
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.IO;
6
7 namespace DirectoryCopyAndMove
8 {
9 class DirectoryClass
10 {
11 /// <summary>
12 /// 复制文件夹及包含的文件
13 /// </summary>
14 /// <param name="sourceDirName">原始路径</param>
15 /// <param name="destDirName">目标路径</param>
16 /// <returns>true:复制成功;false:复制失败</returns>
17 public static bool CopyDir(string sourceDirName, string destDirName)
18 {
19 try
20 {
21 if (sourceDirName.Substring(sourceDirName.Length - 1) != "\\")
22 {
23 sourceDirName = sourceDirName + "\\";
24 }
25 if (destDirName.Substring(destDirName.Length - 1) != "\\")
26 {
27 destDirName = destDirName + "\\";
28 }
29
30 if (Directory.Exists(sourceDirName))
31 {
32 if (!Directory.Exists(destDirName))
33 {
34 Directory.CreateDirectory(destDirName);
35 }
36 foreach (string item in Directory.GetFiles(sourceDirName))
37 {
38 File.Copy(item, destDirName + Path.GetFileName(item), true);
39 }
40 foreach (string item in Directory.GetDirectories(sourceDirName))
41 {
42 sourceDirName = item;
43 destDirName = destDirName + item.Substring(item.LastIndexOf("\\") + 1);
44 CopyDir(sourceDirName, destDirName);
45 }
46 }
47 return true;
48 }
49 catch
50 {
51 return false;
52 }
53 }
54 }
55 }
浙公网安备 33010602011771号