C# 获取指定目录下所有文件信息、移动目录、拷贝目录
2014-08-15 14:13
746 查看
/// <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; }
/// <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)); } }
/// <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)); } }
原文转自:http://blog.csdn.net/vchao13/article/details/6200255
a532
相关文章推荐
- C# 获取指定目录下所有文件信息、删除文件、目录,移动目录,拷贝目录
- C# 获取指定目录下所有文件信息、移动目录、拷贝目录
- 转:C# 获取指定目录下所有文件信息、移动目录、拷贝目录
- C# 获取指定目录下所有文件信息、移动目录、拷贝目录
- [转]C# 获取指定目录下所有文件信息、移动目录、拷贝目录
- C# 获取指定目录下所有文件信息、移动目录、拷贝目录
- C# 获取指定目录下所有文件信息、移动目录、拷贝目录
- C# 获取指定目录下所有文件信息
- C#递归获取所有目录下的文件信息并生成对应的XML件
- C#Winfrom获取指定目录下所有文件名称和文件名称相应的目录 并且添加到DataTable
- C#中拷贝整个文件夹下的所有文件到指定目录
- C#递归获取所有目录下的文件信息并生成对应的XML件
- C# 返回指定目录下所有文件信息
- 【原创】C# 递归获取指定目录的子目录及其所有文件
- C#递归获取所有目录下的文件信息并生成对应的XML件
- C# 拷贝指定文件夹下的所有文件及其文件夹到指定目录
- C# 删除、遍历指定目录下的所有指定文件、文件夹
- c#读取指定目录的所有文件
- MFC获取指定目录下的所有文件函数
- C#.NET获取指定文件夹下所有的指定类型文件