飞/可爱朋 发表于 2014-10-11 11:03:42

【对根目录是文件夹的文件】进行复制和粘贴

如下为测试代码,测试通过
string url = @"D:\\PDF_Upload";
            string FilePath = @"E:\\";
            fileManager.CopyPasteDirectory(url, FilePath);

方法详细
/// <summary>
      /// 【对根目录是文件夹的文件】进行复制和粘贴
      /// 采用的复制和粘贴的方式是覆盖性的
      /// </summary>
      /// <param name="CopyPath">文件的复制源路径</param>
      /// <param name="PastePath">粘贴到的目标路径</param>
      public void CopyPasteDirectory(string CopyPath,string PastePath)
      {
            //获取到需要粘贴的文件的文件名,
            //eg:   D:\\Test
            //取得根文件名,这个文件名称从绝对路径里面进行提取
            //eg:   Test
            string CopyFolderName = CopyPath.Substring(CopyPath.LastIndexOf("\\") + 1);

            //定义需要粘贴到的文件的路径
            //eg:   E:\\Test
            string PasteFolderName = PastePath + "\\" + CopyFolderName;

            //判断粘贴的目标路径末尾是否带有 "\\"
            if (PastePath.LastIndexOf("\\") == PastePath.Length - 1)
            {
                //此时字符串末尾存在 “\\”,直接给新文件命名
                PasteFolderName = PastePath + CopyFolderName;
            }
            try
            {
                //首先创建根目录文件夹
                Directory.CreateDirectory(PasteFolderName);

                //将根目录文件夹下的文件进行遍历得到文件
                string[] CopyFolderNames = Directory.GetFileSystemEntries(CopyPath);

                //遍历文件和目录
                foreach (string CopyFile in CopyFolderNames)
                {
                  //如果该文件是文件夹
                  //执行递归操作
                  if (File.GetAttributes(CopyFile) == FileAttributes.Directory)
                  {
                        //获取文件夹的完整名称
                        string FileName = PasteFolderName + "\\" + CopyFile.Substring(CopyFile.LastIndexOf("\\") + 1);
                        //不存在该文件,进入递归
                        if (!Directory.Exists(FileName))
                        {
                            //覆盖替换,递归操作
                            CopyPasteDirectory(CopyFile, PasteFolderName);
                        }
                  }
                  //如果是文件类型,直接进行复制和粘贴
                  else
                  {
                        //直接复制文件
                        string FileName = PasteFolderName + "\\" + CopyFile.Substring(CopyFile.LastIndexOf("\\") + 1);

                        //复制文件
                        File.Copy(CopyFile, FileName, true);
                  }
                }
            }
            catch (Exception e)
            {
                throw e;
            }
      }




ibcadmin 发表于 2014-10-11 16:53:22

飞飞不错啊 ,   注释很多啊

断点 发表于 2014-10-11 16:54:37

nice

ibcadmin 发表于 2014-10-11 16:55:54

加精加高亮

sherlockhomles 发表于 2014-10-11 17:00:07

不错,收藏了,楼主更新@我

jmhsv 发表于 2017-11-27 21:41:48

好好看看,非常好的帖子











static/image/common/sigline.gif
淘客机器人、淘客返利机器人、淘宝客机器人 联系客服QQ:4000017854
页: [1]
查看完整版本: 【对根目录是文件夹的文件】进行复制和粘贴