[转]C# 获取指定目录下所有文件信息、移动目录、拷贝目录
原文:http://blog.csdn.net/vchao13/article/details/6200255
1、获取指定目录下所有文件信息
- /// <summary>
- /// 返回指定目录下所有文件信息
- /// </summary>
- /// <param name="strDirectory">目录字符串</param>
- /// <returns></returns>
- public List<FileInfo> GetAllFilesInDirectory(string strDirectory)
- {
- List<FileInfo> listFiles = new List<FileInfo>(); //保存所有的文件信息
- DirectoryInfo directory = new DirectoryInfo(strDirectory);
- DirectoryInfo[] directoryArray = directory.GetDirectories();
- FileInfo[] fileInfoArray = directory.GetFiles();
- if (fileInfoArray.Length > 0) listFiles.AddRange(fileInfoArray);
- foreach (DirectoryInfo _directoryInfo in directoryArray)
- {
- DirectoryInfo directoryA = new DirectoryInfo(_directoryInfo.FullName);
- DirectoryInfo[] directoryArrayA = directoryA.GetDirectories();
- FileInfo[] fileInfoArrayA = directoryA.GetFiles();
- if (fileInfoArrayA.Length > 0) listFiles.AddRange(fileInfoArrayA);
- GetAllFilesInDirectory(_directoryInfo.FullName);//递归遍历
- }
- return listFiles;
- }
2、移动此目录到指定目录
- /// <summary>
- /// 从一个目录将其内容移动到另一目录
- /// </summary>
- /// <param name="directorySource">源目录</param>
- /// <param name="directoryTarget">目的目录</param>
- private void MoveFolderTo(string directorySource, string directoryTarget)
- {
- //检查是否存在目的目录
- if (!Directory.Exists(directoryTarget))
- {
- Directory.CreateDirectory(directoryTarget);
- }
- //先来移动文件
- DirectoryInfo directoryInfo = new DirectoryInfo(directorySource);
- FileInfo[] files = directoryInfo.GetFiles();
- //移动所有文件
- foreach (FileInfo file in files)
- {
- //如果自身文件在运行,不能直接覆盖,需要重命名之后再移动
- if (File.Exists(Path.Combine(directoryTarget, file.Name)))
- {
- if (File.Exists(Path.Combine(directoryTarget, file.Name + ".bak")))
- {
- File.Delete(Path.Combine(directoryTarget, file.Name + ".bak"));
- }
- File.Move(Path.Combine(directoryTarget, file.Name), Path.Combine(directoryTarget, file.Name + ".bak"));
- }
- file.MoveTo(Path.Combine(directoryTarget, file.Name));
- }
- //最后移动目录
- DirectoryInfo[] directoryInfoArray = directoryInfo.GetDirectories();
- foreach (DirectoryInfo dir in directoryInfoArray)
- {
- MoveFolderTo(Path.Combine(directorySource, dir.Name), Path.Combine(directoryTarget, dir.Name));
- }
- }
3、拷贝此目录到指定目录
- /// <summary>
- /// 从一个目录将其内容复制到另一目录
- /// </summary>
- /// <param name="directorySource">源目录</param>
- /// <param name="directoryTarget">目的目录</param>
- static void CopyFolderTo(string directorySource, string directoryTarget)
- {
- //检查是否存在目的目录
- if (!Directory.Exists(directoryTarget))
- {
- Directory.CreateDirectory(directoryTarget);
- }
- //先来复制文件
- DirectoryInfo directoryInfo = new DirectoryInfo(directorySource);
- FileInfo[] files = directoryInfo.GetFiles();
- //复制所有文件
- foreach (FileInfo file in files)
- {
- file.CopyTo (Path.Combine(directoryTarget, file.Name));
- }
- //最后复制目录
- DirectoryInfo[] directoryInfoArray = directoryInfo.GetDirectories();
- foreach (DirectoryInfo dir in directoryInfoArray)
- {
- CopyFolderTo(Path.Combine(directorySource, dir.Name), Path.Combine(directoryTarget, dir.Name));
- }
- }
[转]C# 获取指定目录下所有文件信息、移动目录、拷贝目录的更多相关文章
- C# 获取指定目录下所有文件信息
/// <summary> /// 返回指定目录下所有文件信息 /// </summary> /// <param name="strDirectory&quo ...
- Python获取指定路径下所有文件的绝对路径
需求 给出制定目录(路径),获取该目录下所有文件的绝对路径: 实现 方式一: import os def get_file_path_by_name(file_dir): ''' 获取指定路径下所有文 ...
- C# 获取指定目录下所有文件信息、移动目录、拷贝目录
/// <summary> /// 返回指定目录下的所有文件信息 /// </summary> /// <param name="strDirectory&qu ...
- java中实现File文件的重命名(renameTo)、将文件移动到其他目录下、文件的复制(copy)、目录和文件的组合(更加灵活方便)
欢迎加入刚建立的社区:http://t.csdn.cn/Q52km 加入社区的好处: 1.专栏更加明确.便于学习 2.覆盖的知识点更多.便于发散学习 3.大家共同学习进步 3.不定时的发现金红包(不多 ...
- Azure Powershell获取指定订阅下的虚拟机信息(ARM)
为方便Azure用户导出已创建虚拟机的相关信息,特编写如下脚本: 详情脚本: # 登陆Azure Account Add-AzureRmAccount -EnvironmentName AzureCh ...
- Azure Powershell获取指定订阅下的虚拟机信息(ASM)
为方便Azure用户导出已创建虚拟机的相关信息,特编写如下脚本: 详情脚本: # 登陆Azure Account Add-AzureAccount -Environment AzureChinaClo ...
- location 将跟目录下某个文件夹指向2级目录
例如: /caffespressos/指向/web01/caffe/ [root@web01 default]# tree web01/ web01/ └── caffe └── index.html ...
- (实用篇)PHP不用递归遍历目录下所有文件的代码
<?php /** * PHP 非递归实现查询该目录下所有文件 * @param unknown $dir * @return multitype:|multitype:string */ fu ...
- PHP 获取指定目录下所有文件(包含子目录)
PHP 获取指定目录下所有文件(包含子目录) //glob — 寻找与模式匹配的文件路径 $filter_dir = array('CVS', 'templates_c', 'log', 'img', ...
随机推荐
- MySQL中 order by 与 limit 的执行顺序以及使用实例
在 MySQL 执行查询的时候,我们可能既要对结果集进行排序又要限制行数,那么此时 order by 与 limit 的执行顺序是怎么样的呢? order by与limit的执行顺序是:先执行orde ...
- XML-RPC.NET
XML-RPC.NET 是一个 .NET 的客户端服务器的基于 XML-RPC 远程过程调用的框架. 示例代码: [XmlRpcUrl("http://betty.userland.com/ ...
- Leetcode Find Minimum in Rotated Sorted Array 题解
Leetcode Find Minimum in Rotated Sorted Array 题目大意: 对一个有序数组翻转, 就是随机取前K个数,移动到数组的后面,然后让你找出最小的那个数.注意,K有 ...
- MSSQL中循环
1 declare @result table 2 ( 3 custid int, 4 ordermonth datetime, 5 qty int, 6 runqty int, 7 primary ...
- java类的初始化和构造函数
本人小白一枚,看java类的初始化的时候好晕的说,我觉着书上尽管说的对.但总认为有些信息没说出来,没说清楚,看了好多文章博客的,如今有些感悟,来小写下总结,也算是为以后再次复习种个好果子. 先摘一下书 ...
- js 时间对比
https://www.cnblogs.com/xiangsj/p/7977325.html http://www.jb51.net/article/45560.htm isOverdue (time ...
- MySQL怎样存储IP地址
为什么要问如何存储IP 首先就来阐明一下部分人得反问:为什么要问IP得怎样存,直接varchar类型不就得了吗? 其实做任何程序设计都要在功能实现的基础上最大限度的优化性能.而数据库设计是程序设计中不 ...
- jQuery remove 内存 释放
解决方案(伪代码):(http://www.cnblogs.com/see7di/archive/2011/09/08/2239653.html)jQuery( “*”, obj).add([obj] ...
- Redis 的 fields 遇到的问题
问题描述:本地和测试环境同使用一台redis服务器,本地环境和测试环境使用 key,fileds,value 中的fileds 来区分,例如 key fields value 004920c6eba1 ...
- hdu5719 Arrange
首先,根据题意可得B数组应是单调不升的,C数组是单调不降的. 可以发现A_1 = B_1 = C_1A1=B1=C1,所以如果B_1 \neq C_1B1≠C1无解. 进 ...