C# 擷取指定目錄下所有檔案資訊、移動目錄、拷貝目錄

來源:互聯網
上載者:User

標籤:blog   ar   for   檔案   div   log   ad   ef   as   

/// <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));            }        }

  

C# 擷取指定目錄下所有檔案資訊、移動目錄、拷貝目錄

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.