用C#实现文件夹拷贝

C#中没有拷贝整个文件夹的方法,最近需要用到,就写了一个Demo,拿出来跟大家分享一下

创新互联公司2013年成立,是专业互联网技术服务公司,拥有项目网站建设、网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元西宁做网站,已为上家服务,为西宁各地企业和个人服务,联系电话:18982081108

主要思想:

1、写一个拷贝文件夹的函数CopyFolder,传入源文件夹路径和目的文件夹路径

2、判断目的文件夹路径是否存在,如果不存在,创建此文件夹

3、获取源文件夹下的所有文件,拷贝这些文件到目的文件夹

4、获取源文件夹下的所有文件夹,循环调用CopyFolder(此处利用了递归)

代码:

拷贝文件夹

 
 
 
 
  1. using System;using System.IO;namespace FolderService{     
  2. public class FolderService      
  3. {          
  4. static void Main(string[] args)          
  5. {              
  6. if (args.Length != 2)              
  7. {                  
  8. Console.WriteLine("请输入源文件夹地址和目的文件夹地址!");    
  9. return;              
  10. }              
  11. // 判断源文件夹是否存在              
  12. if (!Directory.Exists(args[0]))            {                  
  13. Console.WriteLine("源文件夹不存在!");     
  14. return;              
  15. }              
  16. // 拷贝文件夹              
  17. FolderService copy = new FolderService();     
  18. string flag = copy.CopyFolder(args[0], args[1]);              
  19. Console.WriteLine(flag);          
  20. }          
  21. ///           
  22. /// Copy文件夹          
  23. ///           
  24. /// 源文件夹路径          
  25. /// 目的文件夹路径          
  26. /// 完成状态:success-完成;其他-报错          
  27. public string CopyFolder(string sPath, string dPath)          
  28. {              
  29. string flag = "success";              
  30. try              
  31. {                  
  32. // 创建目的文件夹                  
  33. if (!Directory.Exists(dPath))             
  34. {                     
  35.  Directory.CreateDirectory  
  36. (dPath);                 
  37.  }                  
  38. // 拷贝文件                  
  39. DirectoryInfo sDir = new DirectoryInfo(sPath);                  
  40. FileInfo[] fileArray = sDir.GetFiles();           
  41. foreach (FileInfo file in fileArray)                {                      
  42. file.CopyTo(dPath + "\\" + file.Name, true);                 
  43.  }                  
  44. // 循环子文件夹                  
  45. DirectoryInfo dDir = new DirectoryInfo(dPath);                 
  46.  DirectoryInfo[] subDirArray = sDir.GetDirectories();                  
  47. foreach (DirectoryInfo subDir in subDirArray)                 
  48.  {                      
  49. CopyFolder(subDir.FullName, dPath + "//" + subDir.Name);                  
  50. }             
  51.  }             
  52.  catch (Exception ex)              
  53. {                  
  54. flag = ex.ToString();             
  55.  }              
  56. return flag;         
  57.  }      
  58. }} 

测试Dmo:

1、把代码保存为FolderService.cs,把此cs文件放到H:\Program Files\Microsoft Visual Studio 9.0\VC下(具体根据VS安装路径不同,地址有所不同)

2、打开Visual Studio Tools中的Visual Studio 2008 Command Prompt,把FolderService.cs拖到此Command Prompt中,在路径最前方加入csc+空格,回车编译此程序,如下图:

3、可以在目录H:\Program Files\Microsoft Visual Studio 9.0\VC中看到生成了一个FolderService.exe文件,运行此文件(打开cmd.exe,把FolderService.exe拖到cmd.exe中,加上参数,回车),如下图:

4、这时可以看到,E:\test目录下的文件全部都拷贝到G:\test目录下了

【编辑推荐】

  1. C#简单游戏外挂制作(以Warcraft Ⅲ为例)
  2. C#控件的闪烁问题解决方法总结
  3. 浅析C#延迟加载的运行机制和应用场景
  4. C#多线程中lock的用法
  5. 用C#实现HTTP协议下的多线程文件传输

文章题目:用C#实现文件夹拷贝
转载来于:http://www.hantingmc.com/qtweb/news22/217622.html

成都网站建设公司_创新互联,为您提供面包屑导航外贸建站企业建站定制网站网站维护定制开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联