C# 拷贝,移动,获取文件夹信息
来源:互联网 发布:vb和c语言哪个难 编辑:程序博客网 时间:2024/05/22 16:55
<p> /// <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; }</p>
/// <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)); } }
0 0
- C# 拷贝,移动,获取文件夹信息
- C# 获取指定目录下所有文件信息、移动目录、拷贝目录
- C# 获取指定目录下所有文件信息、删除文件、目录,移动目录,拷贝目录
- C# 获取指定目录下所有文件信息、移动目录、拷贝目录
- C#遍历文件夹, 获取文件/目录信息
- C#文件夹拷贝
- 拷贝文件夹--c#
- C# 文件夹拷贝
- C#下获取目录移动目录拷贝目录
- C#移动文件夹
- C# 文件操作--追加、拷贝、删除、移动文件、创建目录、递归、删除文件夹及文件....
- C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名
- C#文件操作 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名
- C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名
- C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名
- c# 整个文件夹,子目录拷贝
- C#拷贝文件夹及文件
- C#拷贝文件夹及文件
- svn co
- checkbox使用
- [Leetcode]Validate Binary Search Tree
- 第14周oj项目1
- C#--读写文件
- C# 拷贝,移动,获取文件夹信息
- 十一月学习总结
- JDK1.5之 新特性
- java递归
- 转 -- VirtualBox 4.3.12安装ubuntu 14.04 分辨率过小问题的解决方法
- WebIM 即时通信 简介
- Android软件开发之盘点所有Dialog对话框大合集(一)
- USACO: Superprime Rib
- 第14周上机实践项目1——折腾二维数组(1)