首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >文件方法

文件方法

作者头像
用户1055830
发布2018-01-18 15:54:44
发布2018-01-18 15:54:44
7560
举报
文章被收录于专栏:飞扬的花生飞扬的花生

C# 获取指定目录下所有文件信息、移动目录、拷贝目录

/// <summary> /// 获取目录下的所有文件夹和文件的path /// </summary> /// <param name="path"></param> /// <returns></returns> public static List<string> getPath(string path) { DirectoryInfo dir = new DirectoryInfo(path); FileInfo[] fil = dir.GetFiles(); DirectoryInfo[] dii = dir.GetDirectories(); foreach (FileInfo f in fil) { list.Add(f.FullName);//添加文件的路径到列表 } //获取子文件夹内的文件列表,递归遍历 foreach (DirectoryInfo d in dii) { getPath(d.FullName); list.Add(d.FullName);//添加文件夹的路径到列表 } return list; }

代码语言:javascript
复制
/// <summary>
        /// 从一个目录将其内容移动到另一目录  
        /// </summary>
        /// <param name="directorySource">源目录</param>
        /// <param name="directoryTarget">目标目录</param>
        private void MoveFolderTo(string directorySource, string directoryTarget)
        {
            //检查是否存在目的目录  
            if (!Directory.Exists(directoryTarget))
            {
                Directory.CreateDirectory(directoryTarget);
            }
            //先来移动文件  
            DirectoryInfo directoryInfo = new DirectoryInfo(directorySource);
            FileInfo[] files = directoryInfo.GetFiles();
            //移动所有文件  
            foreach (FileInfo file in files)
            {
                //如果自身文件在运行,不能直接覆盖,需要重命名之后再移动  
                if (File.Exists(Path.Combine(directoryTarget, file.Name)))
                {
                    if (File.Exists(Path.Combine(directoryTarget, file.Name + ".bak")))
                    {
                        File.Delete(Path.Combine(directoryTarget, file.Name + ".bak"));
                    }
                    File.Move(Path.Combine(directoryTarget, file.Name), Path.Combine(directoryTarget, file.Name + ".bak"));

                }
                file.MoveTo(Path.Combine(directoryTarget, file.Name));

            }
            //最后移动目录  
            DirectoryInfo[] directoryInfoArray = directoryInfo.GetDirectories();
            foreach (DirectoryInfo dir in directoryInfoArray)
            {
                MoveFolderTo(Path.Combine(directorySource, dir.Name), Path.Combine(directoryTarget, dir.Name));
            }
        }
代码语言:javascript
复制
/// <summary>
        /// 从一个目录将其内容复制到另一目录
        /// </summary>
        /// <param name="directorySource">源目录</param>
        /// <param name="directoryTarget">目标目录</param>
        static void CopyFolderTo(string directorySource, string directoryTarget)
        {
            //检查是否存在目的目录  
            if (!Directory.Exists(directoryTarget))
            {
                Directory.CreateDirectory(directoryTarget);
            }
            //先来复制文件  
            DirectoryInfo directoryInfo = new DirectoryInfo(directorySource);
            FileInfo[] files = directoryInfo.GetFiles();
            //复制所有文件  
            foreach (FileInfo file in files)
            {
                file.CopyTo(Path.Combine(directoryTarget, file.Name));
            }
            //最后复制目录  
            DirectoryInfo[] directoryInfoArray = directoryInfo.GetDirectories();
            foreach (DirectoryInfo dir in directoryInfoArray)
            {
                CopyFolderTo(Path.Combine(directorySource, dir.Name), Path.Combine(directoryTarget, dir.Name));
            }
        }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-12-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档