zoukankan      html  css  js  c++  java
  • C# 获取指定目录下所有文件信息、移动目录、拷贝目录

    /// <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

  • 相关阅读:
    关于效应量
    sc 与 net 命令
    隐函数求导
    关于向量空间的基本性质,与子空间的最最基本性质
    生成随机数(C++)
    关于 setw() 函数(C++)
    关于 加减乘除 基本运算的性质
    为什么文件无法用wps打开,甚至wps.exe本身都无法打开?
    with open()函数中,如何在文件名设置中引用变量(python)
    pygame 运行心理学问卷
  • 原文地址:https://www.cnblogs.com/wuhuisheng/p/2636837.html
Copyright © 2011-2022 走看看