加载中…
个人资料
残风眷月
残风眷月
  • 博客等级:
  • 博客积分:0
  • 博客访问:15,086
  • 关注人气:3
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

怎么用C#进行文件夹复制、拷贝的操作

(2013-01-03 19:23:31)
标签:

怎么用c进行文件夹复

参数

地址

文件

目的

it

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

主要思想:

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. /// <<SPAN class=FBlue>returns>完成状态:success-完成;其他-报错</<SPAN class=FBlue>returns>
  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目录下了

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有