/// <summary>
/// 复制文件夹及文件
/// </summary>
/// <param name="sourceFolder">源文件夹路径</param>
/// <param name="destFolder">目标文件夹路径</param>
/// <returns></returns>
public int CopyFolder2(string sourceFolder, string destFolder)
{
try
{
string folderName = System.IO.Path.GetFileName(sourceFolder);
string destfolderdir = System.IO.Path.Combine(destFolder, folderName);
string[] filenames = System.IO.Directory.GetFileSystemEntries(sourceFolder);
string Basedestfolderdir = destfolderdir;
DirectoryInfo TheFolder = new DirectoryInfo(destfolderdir);
foreach (string file in filenames)// 遍历所有的文件和目录
{
string srcfileName = System.IO.Path.Combine(destfolderdir, System.IO.Path.GetFileName(file));
//判断如果不是文件则进入复制文件夹,如果是文件则进行复制
// true if path refers to an existing directory; false if the directory does
// not exist or an error occurs when trying to determine if the specified file
// exists.
if (!Directory.Exists(file))
{
if (!System.IO.Directory.Exists(destfolderdir))
{
System.IO.Directory.CreateDirectory(destfolderdir);
}
log.ErrorFormat("目标文件路径确认无误:{0}", destfolderdir);
//判断文件是否已经存在
//如果不存在,则复制文件到目标路径
//如果调用者具有所需的权限,且路径包含名称,则为true
if (!File.Exists(srcfileName))
{
System.IO.File.Copy(file, srcfileName);
}
}
else
{
//判断是文件夹,进入继续遍历
CopyFolder2(file, Basedestfolderdir);
}
}
return 1;
}
catch (Exception ex)
{
log.ErrorFormat("复制文件夹失败:{0}", ex);
return 0;
}
}