class
CopyFileFolder
{
public
static void Main(string[] args)
{
//自定义两个文件夹:源文件夹,目标文件夹
string
sourcefile = "c:\Test1";
string
targetfile = "c:\Test2";
//调用方法实现将Test1中的文件拷贝到Test2中
CopyFilefolder(sourcefile,
targetfile);
}
public
static void CopyFilefolder(string sourceFilePath, string
targetFilePath)
{
//获取源文件夹中的所有非目录文件
string[]
files = Directory.GetFiles(sourceFilePath);
string
fileName;
string
destFile;
//如果目标文件夹不存在,则新建目标文件夹
if
(!Directory.Exists(targetFilePath))
{
Directory.CreateDirectory(targetFilePath);
}
//将获取到的文件一个一个拷贝到目标文件夹中
foreach
(string s in files)
{
fileName
= Path.GetFileName(s);
destFile
= Path.Combine(targetFilePath, fileName);
File.Copy(s,
destFile, true);
}
//上面一段在MSDN上可以看到源码
//获取并存储源文件夹中的文件夹名
string[]
filefolders = Directory.GetFiles(sourceFilePath);
//创建Directoryinfo实例
DirectoryInfo
dirinfo = new DirectoryInfo(sourceFilePath);
//获取得源文件夹下的所有子文件夹名
DirectoryInfo[]
subFileFolder = dirinfo.GetDirectories();
for
(int j = 0; j < subFileFolder.Length;
j++)
{
//获取所有子文件夹名
string
subSourcePath = sourceFilePath + "\" +
subFileFolder[j].ToString();
string
subTargetPath = targetFilePath + "\" +
subFileFolder[j].ToString();
//把得到的子文件夹当成新的源文件夹,递归调用CopyFilefolder
CopyFilefolder(subSourcePath,
subTargetPath);
}
}
看过之后应该会觉得很简单吧。