C#複製文件到另一個文件夾下

 

 

 






        static void Main(string[] args)
        {
            string src = @"D:\發佈文件\XTPT\Content\img";
            string src2 = @"D:\發佈文件\XTPT\Content\picture";

            string dest =@"C:\Users\win 10\Desktop\新建文件夾 (2)\pic";

            CopyDirectory(src, dest); 
            //moveFiles(src,dest);
            //TestCopyDirectory(src, dest);
            Console.WriteLine("複製圖片完成!");
            Console.ReadLine();
        }

  
        private static void moveFiles(string srcFolder, string destFolder)
        {
            DirectoryInfo directoryInfo = new DirectoryInfo(srcFolder);
            FileInfo[] files = directoryInfo.GetFiles();


            string folderName = srcFolder.Substring(srcFolder.LastIndexOf("\\") + 1);

            string desfolderdir = destFolder + "\\" + folderName;
            foreach (FileInfo file in files) 
            {
                if (file.Extension == ".png")
                {
                    file.CopyTo(Path.Combine(destFolder, file.Name));
                }

            
            }
        }

        private static void CopyDirectory(string srcdir, string desdir)
        {
            string folderName = srcdir.Substring(srcdir.LastIndexOf("\\") + 1);

            string desfolderdir = desdir + "\\" + folderName;

            if (desdir.LastIndexOf("\\") == (desdir.Length - 1))
            {
                desfolderdir = desdir + folderName;
            }
            string[] filenames = Directory.GetFileSystemEntries(srcdir);

            foreach (string file in filenames)// 遍歷所有的文件和目錄
            {
                if (Directory.Exists(file))// 先當作目錄處理如果存在這個目錄就遞歸Copy該目錄下面的文件
                {

                    string currentdir = desfolderdir + "\\" + file.Substring(file.LastIndexOf("\\") + 1);
                    if (!Directory.Exists(currentdir))
                    {
                        Directory.CreateDirectory(currentdir);
                    }

                    CopyDirectory(file, desfolderdir);
                }

                else // 否則直接copy文件
                {
                    string srcfileName = file.Substring(file.LastIndexOf("\\") + 1);

                    srcfileName = desfolderdir + "\\" + srcfileName;


                    if (!Directory.Exists(desfolderdir))
                    {
                        Directory.CreateDirectory(desfolderdir);
                    }


                    File.Copy(file, srcfileName);
                }
            }//foreach 
        }


        /// <summary>
        /// 不帶父目錄的複製圖片
        /// </summary>
        /// <param name="srcdir"></param>
        /// <param name="desdir"></param>
        private static void TestCopyDirectory(string srcdir, string desdir)
        {
         
            string[] filenames = Directory.GetFileSystemEntries(srcdir);

            foreach (string file in filenames)// 遍歷所有的文件和目錄
            {
                if (Directory.Exists(file))// 先當作目錄處理如果存在這個目錄就遞歸Copy該目錄下面的文件
                {
                   

                    string currentdir = desdir + "\\" + file.Substring(file.LastIndexOf("\\") + 1);
                    if (!Directory.Exists(currentdir))
                    {
                        Directory.CreateDirectory(currentdir);
                    }

                    CopyDirectory(file, desdir);
                }

                else // 否則直接copy文件
                {
                    string srcfileName = file.Substring(file.LastIndexOf("\\") + 1);

                    srcfileName = desdir + "\\" + srcfileName;




                    File.Copy(file, srcfileName);
                }
            }//foreach 
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章