请选择 进入手机版 | 继续访问电脑版

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

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#问题入口 ASP.NET问题入口

【C#问题提交】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接毕业设计】 面试-葵花宝典下载

官方一群:

官方二群:

查看: 3732|回复: 5

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

  [复制链接]
  • TA的每日心情
    开心
    2018-3-8 11:10
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    11

    主题

    91

    帖子

    749

    积分

    高级会员

    Rank: 4

    积分
    749
    发表于 2014-10-11 11:03:42 | 显示全部楼层 |阅读模式

    马上加入IBC,查看更多教程

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    如下为测试代码,测试通过
    [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;
                }
            }





  • TA的每日心情
    开心
    前天 19:06
  • 签到天数: 1469 天

    [LV.10]以坛为家III

    1177

    主题

    3082

    帖子

    9万

    积分

    管理员

    IBC编程社区-原道楠

    Rank: 9Rank: 9Rank: 9

    积分
    94058

    推广达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2014-10-11 16:53:22 | 显示全部楼层
    飞飞不错啊 ,   注释很多啊
    C#论坛 www.ibcibc.com IBC编程社区
    C#
    C#论坛
    IBC编程社区
  • TA的每日心情
    奋斗
    2014-8-27 09:09
  • 签到天数: 2 天

    [LV.1]初来乍到

    1

    主题

    12

    帖子

    585

    积分

    高级会员

    Rank: 4

    积分
    585
    发表于 2014-10-11 16:54:37 | 显示全部楼层
    nice
  • TA的每日心情
    开心
    前天 19:06
  • 签到天数: 1469 天

    [LV.10]以坛为家III

    1177

    主题

    3082

    帖子

    9万

    积分

    管理员

    IBC编程社区-原道楠

    Rank: 9Rank: 9Rank: 9

    积分
    94058

    推广达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2014-10-11 16:55:54 | 显示全部楼层
    加精  加高亮
    C#论坛 www.ibcibc.com IBC编程社区
    C#
    C#论坛
    IBC编程社区
  • TA的每日心情
    开心
    2016-1-18 11:45
  • 签到天数: 45 天

    [LV.5]常住居民I

    10

    主题

    67

    帖子

    1441

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1441

    最佳新人活跃会员热心会员论坛元老

    发表于 2014-10-11 17:00:07 | 显示全部楼层
    不错,收藏了,楼主更新@我

    该用户从未签到

    0

    主题

    2

    帖子

    13

    积分

    新手上路

    Rank: 1

    积分
    13
    发表于 2017-11-27 21:41:48 | 显示全部楼层
    好好看看,非常好的帖子












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

    本版积分规则