首页 > 学院 > 开发设计 > 正文

复制文件夹内容和删除整个文件夹的2个函数

2019-11-18 12:00:49
字体:
来源:转载
供稿:网友

  // ======================================================
  
  // 实现一个静态方法将指定文件夹下面的所有内容copy到目标文件夹下面
  
  // 假如目标文件夹为只读属性就会报错。
  
  // APRil 18April2005 In STU
  
  // ======================================================
  
  public static void CopyDir(string srcPath,string aimPath)
  
  {
  
  try
  
  {
  
  // 检查目标目录是否以目录分割字符结束假如不是则添加之
  
  if(aimPath[aimPath.Length-1] != Path.DirectorySeparatorChar)
  
  aimPath += Path.DirectorySeparatorChar;
  
  // 判定目标目录是否存在假如不存在则新建之
  
  if(!Directory.Exists(aimPath)) Directory.CreateDirectory(aimPath);
  
  // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
  
  // 假如你指向copy目标文件下面的文件而不包含目录请使用下面的方法
  
  // string[] fileList = Directory.GetFiles(srcPath);
  
  string[] fileList = Directory.GetFileSystemEntries(srcPath);
  
  // 遍历所有的文件和目录
  
  foreach(string file in fileList)
  
  {
  
  // 先当作目录处理假如存在这个目录就递归Copy该目录下面的文件
  
  if(Directory.Exists(file))
  
  CopyDir(file,aimPath+Path.GetFileName(file));
  
  // 否则直接Copy文件
  
  else
  
  File.Copy(file,aimPath+Path.GetFileName(file),true);
  
  }
  
  }
  
  catch (Exception e)
  
  {
  
  MessageBox.Show (e.ToString());
  
  }
  
  }
  
  
  // ======================================================
  // 实现一个静态方法将指定文件夹下面的所有内容Detele
  // 测试的时候要小心操作,删除之后无法恢复。
  // April 18April2005 In STU
  // ======================================================
  public static void DeleteDir(string aimPath)
  {
  try
  {
  // 检查目标目录是否以目录分割字符结束假如不是则添加之
  if(aimPath[aimPath.Length-1] != Path.DirectorySeparatorChar)
  aimPath += Path.DirectorySeparatorChar;
  // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
  // 假如你指向Delete目标文件下面的文件而不包含目录请使用下面的方法
  // string[] fileList = Directory.GetFiles(aimPath);
  string[] fileList = Directory.GetFileSystemEntries(aimPath);
  // 遍历所有的文件和目录
  foreach(string file in fileList)
  {
  // 先当作目录处理假如存在这个目录就递归Delete该目录下面的文件
  if(Directory.Exists(file))
  {
  DeleteDir(aimPath+Path.GetFileName(file));
  }
  // 否则直接Delete文件
  else
  {
  File.Delete (aimPath+Path.GetFileName(file));
  }
  }
  //删除文件夹
  System.IO .Directory .Delete (aimPath,true);
  }
  catch (Exception e)
  {
  MessageBox.Show (e.ToString());
  }
  }

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表