/// <summary>
/// 递归遍历文件夹及文件
/// </summary>
/// <param name="dirPath">指定的目录</param>
private void FindFile(string oldPath, string newParh) //参数dirPath为指定的目录
{
try
{
log4net.ILog objLogger = log4net.LogManager.GetLogger("LogFileAppenderlogger");
DirectoryInfo oldDir = new DirectoryInfo(oldPath);
DirectoryInfo newDir = new DirectoryInfo(newParh);
foreach (DirectoryInfo d in oldDir.GetDirectories())//查找子目录
{
//隐藏的文件夹
if (d.Attributes == (System.IO.FileAttributes.Hidden | System.IO.FileAttributes.Directory))
{
objLogger.Info("Hidden Directory:" + oldDir + @"\" + d.Name + "/" + DateTime.Now.ToString());
continue;
}
//判断是否存在该文件夹
ExistDirectory(newDir + @"\" + d.ToString());
//递归
FindFile(oldDir + @"\" + d.ToString(), newDir + @"\" + d.ToString());
}
foreach (FileInfo f in oldDir.GetFiles()) //查找文件
{
//隐藏的文件
if (f.Attributes == (System.IO.FileAttributes.Hidden | System.IO.FileAttributes.Archive))
{
objLogger.Info("Hidden Files:" + oldDir + @"\" + f.Name + "/" + DateTime.Now.ToString());
continue;
}
bool Is = CopyFile(oldPath + @"\" + f.Name, newDir + @"\" + f.Name);
if (Is == true)
objLogger.Info("Succeed:" + DateTime.Now.ToString());
else
objLogger.Info("Fail:" + DateTime.Now.ToString());
}
}
catch (Exception ex)
{
MessageBox.Show("FindFile:" + ex.Message);
}
}
/// <summary>
/// 判断指定路径下是否存在文件夹,不存在创建
/// </summary>
/// <param name="path">指定的路径</param>
/// <returns>不存在 【创建】---存在【返回】</returns>
private void ExistDirectory(string path)
{
try
{
log4net.ILog objLogger = log4net.LogManager.GetLogger("LogFileAppenderlogger");
// Determine whether the directory exists.
if (Directory.Exists(path))
{
return;
}
// Try to create the directory.
DirectoryInfo di = Directory.CreateDirectory(path);
objLogger.Info("Create:" + path + "/" + DateTime.Now.ToString());
}
catch (Exception ex)
{
MessageBox.Show("existDirectory:" + ex.Message);
}
}
/// <summary>
/// Copy文件
/// </summary>
/// <param name="Sourefile">旧的文件路径【带扩展名】</param>
/// <param name="tofile">新的文件路径【带扩展名】</param>
private bool CopyFile(string Sourefile, string tofile)
{
try
{
log4net.ILog objLogger = log4net.LogManager.GetLogger("LogFileAppenderlogger");
if (File.Exists(tofile))
{
//设置文件属性
//File.SetAttributes(tofile, FileAttributes.Normal);
//删除文件
//File.Delete(tofile);
objLogger.Info("Exists:" + tofile + "/" + DateTime.Now.ToString());
return true;
}
objLogger.Info("Copy:" + Sourefile + "/" + DateTime.Now.ToString());
//复制
File.Copy(Sourefile, tofile, true);
return true;
}
catch (System.Exception ex)
{
MessageBox.Show("CopyFile:" + ex.Message);
return false;
}
}