龙之家园  
我的博客我做主!

 private void CopyFile(string source, string destination)
        {
                bool flag = true;
                if (!Directory.Exists(destination) && flag == true)
                {
                    Directory.CreateDirectory(destination);
                    flag = false;
                }
                DirectoryInfo rootdir = new DirectoryInfo(source);

                //遍历文件  
                FileInfo[] fileinfo = rootdir.GetFiles();
                foreach (FileInfo file in fileinfo)
                {
                    file.CopyTo(destination + "\\" + file.Name, true);
                }
                DirectoryInfo[] childdir = rootdir.GetDirectories();
                for (int i = 0; i < childdir.Length; i++)
                {
                    try
                    {
                        FileInfo[] fileinfo_child = childdir[i].GetFiles();
                        foreach (FileInfo file_child in fileinfo_child)
                        {
                            file_child.CopyTo(destination + "\\" + file_child.Name, true);
                        }
                        //递归方法
                        DirectoryInfo[] childdir_child = childdir[i].GetDirectories();
                        if (childdir_child.Length > 0)
                        {
                            for (int j = 0; j < childdir_child.Length; j++)
                            {
                                CopyFile(source + "\\" + childdir[i].Name + "\\" + childdir_child[j].Name, destination);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.Write(ex.Message);
                        continue;
                    }
                }
          } 
--------------------------------------------------------------
另外一种方法:
  // 复制合并图片到一个文件夹
        static void CopyPicToFileDirectory()
        {
            Console.WriteLine("请输入源文件夹路径:");
            string sPath = Console.ReadLine();
            if (!Directory.Exists(sPath))
            {
                Console.WriteLine("源文件夹路径不存在!");
                return;
            }

            Console.WriteLine("请输入目标文件夹路径:");
            string dPath = Console.ReadLine();
            if (!Directory.Exists(dPath))
            {
                Console.WriteLine("目标文件夹路径不存在!");
                return;
            }
           
           
            Console.WriteLine("是否删除原文件:Press [Y]/[N]");
            bool isMove = false;
            string str1 = null;
            str1 = Console.ReadLine();
            bool flag = (str1 == null)?false:true;
            while (flag)
            {
                if ("y".Equals(str1.Trim().ToLower()))
                {
                    //yes
                    isMove = true;
                    break;
                }
                else if ("n".Equals(str1.Trim().ToLower()))
                {
                    //no
                    isMove = false;
                    break;
                }
                Console.WriteLine("是否删除原文件:Press [Y]/[N]");
                str1 = Console.ReadLine();
                flag = (str1 == null) ? false : true;
            }

            DoCopyFile(sPath, dPath, isMove);
        }

        private static void DoCopyFile(string sPath, string dPath, bool isMove)
        {
            DirectoryInfo directoryInfo = new DirectoryInfo(sPath);
            string destionFilename = null;
            FileInfo[] fileInfos = directoryInfo.GetFiles();
            foreach (FileInfo f in fileInfos)
            {
                destionFilename = dPath.Trim('\\') + "\\" + f.Name;
                f.CopyTo(destionFilename, true);
                if (isMove)
                {
                    f.Delete();
                }
            }
            DirectoryInfo[] subDirectories = directoryInfo.GetDirectories();
            foreach (DirectoryInfo d in subDirectories)
            {
                DoCopyFile(d.FullName, dPath, isMove);
            }
        }

posted on 2007-07-23 10:37  zhengfeng  阅读(318)  评论(0)    收藏  举报