不知道微软为什么复制文件的方法都有,却没有复制目录的方法. 这不只得自已写了一个.
struct
Dir
... {
private string path;
public Dir(string path)
...{
this.path = path;
}
public string Name
...{
get
...{
string[] pathPhase = this.path.Split(new char[] ...{ System.IO.Path.DirectorySeparatorChar });
return pathPhase[pathPhase.Length - 1];
}
}
public string Path
...{
set
...{
this.path = value;
}
get
...{
return this.path;
}
}
public override string ToString()
...{
return this.Name;
}
}
... {
private string path;
public Dir(string path)
...{
this.path = path;
}
public string Name
...{
get
...{
string[] pathPhase = this.path.Split(new char[] ...{ System.IO.Path.DirectorySeparatorChar });
return pathPhase[pathPhase.Length - 1];
}
}
public string Path
...{
set
...{
this.path = value;
}
get
...{
return this.path;
}
}
public override string ToString()
...{
return this.Name;
}
}
private
void
CopyDirectory(
string
sour,
string
des)
... {
CopyDirectorynew Dir(sour), des);
}
private void CopyDirectory(Dir sour, string des)
... {
string newDirPath = Path.Combine(des, sour.Name);
Directory.CreateDirectory(newDirPath);
string[] files = Directory.GetFiles(sour.Path);
foreach (string file in files)
...{
File.Copy(file, Path.Combine(newDirPath, Path.GetFileName(file)));
}
string[] dirs = Directory.GetDirectories(sour.Path);
foreach (string dir in dirs)
...{
CopyDirectory(new Dir(dir), newDirPath);
}
}
... {
CopyDirectorynew Dir(sour), des);
}
private void CopyDirectory(Dir sour, string des)
... {
string newDirPath = Path.Combine(des, sour.Name);
Directory.CreateDirectory(newDirPath);
string[] files = Directory.GetFiles(sour.Path);
foreach (string file in files)
...{
File.Copy(file, Path.Combine(newDirPath, Path.GetFileName(file)));
}
string[] dirs = Directory.GetDirectories(sour.Path);
foreach (string dir in dirs)
...{
CopyDirectory(new Dir(dir), newDirPath);
}
}