原文:http://blog.csdn.net/vchao13/article/details/6200255

1、获取指定目录下所有文件信息

  1. /// <summary>
  2. /// 返回指定目录下所有文件信息
  3. /// </summary>
  4. /// <param name="strDirectory">目录字符串</param>
  5. /// <returns></returns>
  6. public List<FileInfo> GetAllFilesInDirectory(string strDirectory)
  7. {
  8. List<FileInfo> listFiles = new List<FileInfo>(); //保存所有的文件信息
  9. DirectoryInfo directory = new DirectoryInfo(strDirectory);
  10. DirectoryInfo[] directoryArray = directory.GetDirectories();
  11. FileInfo[] fileInfoArray = directory.GetFiles();
  12. if (fileInfoArray.Length > 0) listFiles.AddRange(fileInfoArray);
  13. foreach (DirectoryInfo _directoryInfo in directoryArray)
  14. {
  15. DirectoryInfo directoryA = new DirectoryInfo(_directoryInfo.FullName);
  16. DirectoryInfo[] directoryArrayA = directoryA.GetDirectories();
  17. FileInfo[] fileInfoArrayA = directoryA.GetFiles();
  18. if (fileInfoArrayA.Length > 0) listFiles.AddRange(fileInfoArrayA);
  19. GetAllFilesInDirectory(_directoryInfo.FullName);//递归遍历
  20. }
  21. return listFiles;
  22. }

2、移动此目录到指定目录

  1. /// <summary>
  2. /// 从一个目录将其内容移动到另一目录
  3. /// </summary>
  4. /// <param name="directorySource">源目录</param>
  5. /// <param name="directoryTarget">目的目录</param>
  6. private void  MoveFolderTo(string directorySource, string directoryTarget)
  7. {
  8. //检查是否存在目的目录
  9. if (!Directory.Exists(directoryTarget))
  10. {
  11. Directory.CreateDirectory(directoryTarget);
  12. }
  13. //先来移动文件
  14. DirectoryInfo directoryInfo = new DirectoryInfo(directorySource);
  15. FileInfo[] files = directoryInfo.GetFiles();
  16. //移动所有文件
  17. foreach (FileInfo file in files)
  18. {
  19. //如果自身文件在运行,不能直接覆盖,需要重命名之后再移动
  20. if (File.Exists(Path.Combine(directoryTarget, file.Name)))
  21. {
  22. if (File.Exists(Path.Combine(directoryTarget, file.Name + ".bak")))
  23. {
  24. File.Delete(Path.Combine(directoryTarget, file.Name + ".bak"));
  25. }
  26. File.Move(Path.Combine(directoryTarget, file.Name), Path.Combine(directoryTarget, file.Name + ".bak"));
  27. }
  28. file.MoveTo(Path.Combine(directoryTarget, file.Name));
  29. }
  30. //最后移动目录
  31. DirectoryInfo[] directoryInfoArray = directoryInfo.GetDirectories();
  32. foreach (DirectoryInfo dir in directoryInfoArray)
  33. {
  34. MoveFolderTo(Path.Combine(directorySource, dir.Name), Path.Combine(directoryTarget, dir.Name));
  35. }
  36. }

3、拷贝此目录到指定目录

  1. /// <summary>
  2. /// 从一个目录将其内容复制到另一目录
  3. /// </summary>
  4. /// <param name="directorySource">源目录</param>
  5. /// <param name="directoryTarget">目的目录</param>
  6. static void CopyFolderTo(string directorySource, string directoryTarget)
  7. {
  8. //检查是否存在目的目录
  9. if (!Directory.Exists(directoryTarget))
  10. {
  11. Directory.CreateDirectory(directoryTarget);
  12. }
  13. //先来复制文件
  14. DirectoryInfo directoryInfo = new DirectoryInfo(directorySource);
  15. FileInfo[] files = directoryInfo.GetFiles();
  16. //复制所有文件
  17. foreach (FileInfo file in files)
  18. {               
  19. file.CopyTo (Path.Combine(directoryTarget, file.Name));
  20. }
  21. //最后复制目录
  22. DirectoryInfo[] directoryInfoArray = directoryInfo.GetDirectories();
  23. foreach (DirectoryInfo dir in directoryInfoArray)
  24. {
  25. CopyFolderTo(Path.Combine(directorySource, dir.Name), Path.Combine(directoryTarget, dir.Name));
  26. }
  27. }

[转]C# 获取指定目录下所有文件信息、移动目录、拷贝目录的更多相关文章

  1. C# 获取指定目录下所有文件信息

    /// <summary> /// 返回指定目录下所有文件信息 /// </summary> /// <param name="strDirectory&quo ...

  2. Python获取指定路径下所有文件的绝对路径

    需求 给出制定目录(路径),获取该目录下所有文件的绝对路径: 实现 方式一: import os def get_file_path_by_name(file_dir): ''' 获取指定路径下所有文 ...

  3. C# 获取指定目录下所有文件信息、移动目录、拷贝目录

    /// <summary> /// 返回指定目录下的所有文件信息 /// </summary> /// <param name="strDirectory&qu ...

  4. java中实现File文件的重命名(renameTo)、将文件移动到其他目录下、文件的复制(copy)、目录和文件的组合(更加灵活方便)

    欢迎加入刚建立的社区:http://t.csdn.cn/Q52km 加入社区的好处: 1.专栏更加明确.便于学习 2.覆盖的知识点更多.便于发散学习 3.大家共同学习进步 3.不定时的发现金红包(不多 ...

  5. Azure Powershell获取指定订阅下的虚拟机信息(ARM)

    为方便Azure用户导出已创建虚拟机的相关信息,特编写如下脚本: 详情脚本: # 登陆Azure Account Add-AzureRmAccount -EnvironmentName AzureCh ...

  6. Azure Powershell获取指定订阅下的虚拟机信息(ASM)

    为方便Azure用户导出已创建虚拟机的相关信息,特编写如下脚本: 详情脚本: # 登陆Azure Account Add-AzureAccount -Environment AzureChinaClo ...

  7. location 将跟目录下某个文件夹指向2级目录

    例如: /caffespressos/指向/web01/caffe/ [root@web01 default]# tree web01/ web01/ └── caffe └── index.html ...

  8. (实用篇)PHP不用递归遍历目录下所有文件的代码

    <?php /** * PHP 非递归实现查询该目录下所有文件 * @param unknown $dir * @return multitype:|multitype:string */ fu ...

  9. PHP 获取指定目录下所有文件(包含子目录)

    PHP 获取指定目录下所有文件(包含子目录) //glob — 寻找与模式匹配的文件路径 $filter_dir = array('CVS', 'templates_c', 'log', 'img', ...

随机推荐

  1. Linux下如何修改root密码以及找回root密码

    Linux下修改root密码方法 以root身份登陆,执行: passwd 用户名 然后根据提示,输入新密码,再次输入新密码,系统会提示成功修改密码. 具体示例如下: [root@www ~]# pa ...

  2. Drupal与其它开源系统的整合

    网上看到一篇介绍Drupal与phpbb整合的文章.浏览了一下,真心地不错.于是就想将与整合有关的文章做一个汇总,以备不时之需: Drupal7整合PHPBB论坛 Drupal 7 整合 Vanill ...

  3. CVTE电话面试

    Cvte电话面试 1. SVM和逻辑回归的相同不同点 2. 特征值和奇异值的区别 3. 如何找到全局最优解,梯度下降和牛顿法区别 4. 防止过拟合的方法 5. 随机森林和ADBOOST方差和偏置 6. ...

  4. 设置mvc路由映射

    routes.MapRoute( "chapter", "{action}/{bookId}/{pageindex}", new { controller = ...

  5. 设备管理器里“SM总线控制器”、“其它PCI桥设备”驱动有问题

    WinXP重装系统后设备管理器里面出现黄色问号.各自是"SM总线控制器"和"其它PCI桥设备",主板是七彩虹的,芯片组是 geForce 7025的,南桥是 n ...

  6. 【转载】使用Exp和Expdp导出数据的性能对比与优化

    转自:http://blog.itpub.net/117319/viewspace-1410931/ 序:这方面的文章虽然很多人写过,但是结合实际进行详细的对比分析的不多,这里,结合所在公司的行业,进 ...

  7. [gj]耶稣和撒旦的关系

    转: https://zhidao.baidu.com/question/7461904.html 人生充满试探,无论你居住在乡间或城市,都尝会受到试探,耶稣在世上的日子,也受到试探,让我们看看两处经 ...

  8. Linux高性能server编程——I/O复用

     IO复用 I/O复用使得程序能同一时候监听多个文件描写叙述符.通常网络程序在下列情况下须要使用I/O复用技术: client程序要同一时候处理多个socket client程序要同一时候处理用户 ...

  9. sqlite-按日期分组,根据日期查询详细内容

    一.按日期分组 String paramString = "select strftime('%Y-%m-%d',"+DBConfig.RUNNING_LOG_DATE+" ...

  10. ubuntu MySQL数据库输入中文乱码 解决方案

    一.登录MySQL查看用SHOW VARIABLES LIKE ‘character%’;下字符集,显示如下:+--------------------------+----------------- ...