工作需要自己写了一个目录复制函数,用来将一个目录下的所有内容拷贝到另一个目录下。
就是用递归回溯的方法将子目录一级级创建并拷贝当前文件夹中的所有文件。
1
private void directoryCopy(string sourceDirectory, string targetDirectory) {
2
if (!Directory.Exists(sourceDirectory) || !Directory.Exists(targetDirectory)) {
3
return;
4
}
5
DirectoryInfo sourceInfo = new DirectoryInfo(sourceDirectory);
6
FileInfo[] fileInfo = sourceInfo.GetFiles();
7
foreach (FileInfo fiTemp in fileInfo) {
8
File.Copy(sourceDirectory + "\\" + fiTemp.Name, targetDirectory + "\\" + fiTemp.Name, true);
9
}
10
DirectoryInfo[] diInfo = sourceInfo.GetDirectories();
11
foreach (DirectoryInfo diTemp in diInfo) {
12
string sourcePath = diTemp.FullName;
13
string targetPath = diTemp.FullName.Replace(sourceDirectory,targetDirectory);
14
Directory.CreateDirectory(targetPath);
15
directoryCopy(sourcePath,targetPath);
16
}
17
}
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
2
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
3
![](/Images/OutliningIndicators/InBlock.gif)
4
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
5
![](/Images/OutliningIndicators/InBlock.gif)
6
![](/Images/OutliningIndicators/InBlock.gif)
7
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
8
![](/Images/OutliningIndicators/InBlock.gif)
9
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
17
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)