微软提供的System.IO.Directory不提供拷贝整个文件夹内容到其他目录的方法,所以自己写了一个
1
2 public class SKDirectory
3 {
4 static public void CopyTo(string sourceDirName, string destDirName)
5 {
6 if (!System.IO.Directory.Exists(sourceDirName))
7 throw new System.IO.DirectoryNotFoundException("Source Directory : " + sourceDirName + " Not Found.");
8
9 if (!System.IO.Directory.Exists(destDirName))
10 throw new System.IO.DirectoryNotFoundException("Dest Directory : " + destDirName + " Not Found.");
11
12 if (sourceDirName.Length != sourceDirName.Replace(destDirName, string.Empty).Length)
13 throw new Exception("Dest Directory Not Allowed.");
14
15 System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(sourceDirName);
16 destDirName += "\\" + di.Name;
17 System.IO.Directory.CreateDirectory(destDirName);
18
19 foreach (System.IO.DirectoryInfo cdi in di.GetDirectories())
20 CopyTo(cdi.FullName, destDirName);
21
22 foreach (System.IO.FileInfo fi in di.GetFiles())
23 fi.CopyTo(destDirName + "\\" + fi.Name);
24 }
25 }
26
2 public class SKDirectory
3 {
4 static public void CopyTo(string sourceDirName, string destDirName)
5 {
6 if (!System.IO.Directory.Exists(sourceDirName))
7 throw new System.IO.DirectoryNotFoundException("Source Directory : " + sourceDirName + " Not Found.");
8
9 if (!System.IO.Directory.Exists(destDirName))
10 throw new System.IO.DirectoryNotFoundException("Dest Directory : " + destDirName + " Not Found.");
11
12 if (sourceDirName.Length != sourceDirName.Replace(destDirName, string.Empty).Length)
13 throw new Exception("Dest Directory Not Allowed.");
14
15 System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(sourceDirName);
16 destDirName += "\\" + di.Name;
17 System.IO.Directory.CreateDirectory(destDirName);
18
19 foreach (System.IO.DirectoryInfo cdi in di.GetDirectories())
20 CopyTo(cdi.FullName, destDirName);
21
22 foreach (System.IO.FileInfo fi in di.GetFiles())
23 fi.CopyTo(destDirName + "\\" + fi.Name);
24 }
25 }
26