马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

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

  [复制链接]
查看7644 | 回复5 | 2014-10-11 11:03:42 | 显示全部楼层 |阅读模式
如下为测试代码,测试通过
[C#] 纯文本查看 复制代码
string url = @"D:\\PDF_Upload";
            string FilePath = @"E:\\";
            fileManager.CopyPasteDirectory(url, FilePath);
[C#] 纯文本查看 复制代码

方法详细
/// <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 | 显示全部楼层
飞飞不错啊 ,   注释很多啊
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
断点 | 2014-10-11 16:54:37 | 显示全部楼层
nice
ibcadmin | 2014-10-11 16:55:54 | 显示全部楼层
加精  加高亮
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
sherlockhomles | 2014-10-11 17:00:07 | 显示全部楼层
不错,收藏了,楼主更新@我
jmhsv | 2017-11-27 21:41:48 | 显示全部楼层
好好看看,非常好的帖子












淘客机器人、淘客返利机器人、淘宝客机器人 联系客服QQ:4000017854
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则