博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 获取指定目录下所有文件信息、移动目录、拷贝目录
阅读量:4179 次
发布时间:2019-05-26

本文共 3416 字,大约阅读时间需要 11 分钟。

///         /// 返回指定目录下的所有文件信息        ///         ///         /// 
public List
GetAllFilesInDirectory(string strDirectory) { List
listFiles = new List
(); //保存所有的文件信息 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;
///         /// 从一个目录将其内容移动到另一目录          ///         /// 源目录        /// 目标目录        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));            }

 

///         /// 从一个目录将其内容复制到另一目录        ///         /// 源目录        /// 目标目录        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://gblai.baihongyu.com/

你可能感兴趣的文章
515. Find Largest Value in Each Tree Row(Tree)
查看>>
897. Increasing Order Search Tree(Tree)
查看>>
114. Flatten Binary Tree to Linked List(Tree)
查看>>
199. Binary Tree Right Side View(Tree)
查看>>
230. Kth Smallest Element in a BST(Tree)
查看>>
TreeMap源码解析
查看>>
求字符串的最长回文串-----Manacher's Algorithm 马拉车算法
查看>>
MYSQL的索引
查看>>
回溯法常用的解题模板和常见题型
查看>>
深入分析Java I/O 的工作机制
查看>>
动态规划的套路----左神
查看>>
KMP算法简解
查看>>
左神算法课进阶版总结
查看>>
左神算法基础班总结
查看>>
Linux性能优化
查看>>
进程间的通信---UNIX高级环境编程
查看>>
Linux三剑客--grep、sed、awk
查看>>
操作系统----CPU、内存、进程管理
查看>>
基于SSH开发的城市公交管理系统 JAVA MySQL
查看>>
基于SSH开发的勤工助学管理系统 JAVA MySQL
查看>>