`
LiuXiaoYong
  • 浏览: 31150 次
  • 性别: Icon_minigender_1
  • 来自: 惠州
社区版块
存档分类
最新评论

C#复制文件夹,删除文件夹的方法

    博客分类:
  • .NET
阅读更多
C#复制文件的时候只提供了复制文件的类,没有复制文件夹。
删除文件夹的时候,文件夹下面有文件的时候是不能删除的,需要先删除文件夹下面所有文件才能删除文件夹。

在网上找了很多资料,在这里记录一下这两个方法:

复制文件夹:
/// <summary>
/// 复制文件夹
/// </summary>
/// <param name="sourceFolder">待复制的文件夹</param>
/// <param name="destFolder">复制到的文件夹</param>
        private void CopyFolder(string sourceFolder, string destFolder)
        {
            if (!Directory.Exists(destFolder))
            {
                Directory.CreateDirectory(destFolder);
            }
            string[] files = Directory.GetFiles(sourceFolder);
            foreach (string file in files)
            {
                string name = Path.GetFileName(file);

                string dest = Path.Combine(destFolder, name);

                File.Copy(file, dest);
            }
            string[] folders = Directory.GetDirectories(sourceFolder);
            foreach (string folder in folders)
            {
                string name = Path.GetFileName(folder);

                string dest = Path.Combine(destFolder, name);

                CopyFolder(folder, dest);
            }
        }



删除文件夹:
/// <summary>   
/// C# 删除文件夹      
/// </summary>   
/// <param name="dir">删除的文件夹,全路径格式</param>   
        private void DeleteFolder(string dir)
        {
            // 循环文件夹里面的内容   
            foreach (string f in Directory.GetFileSystemEntries(dir))
            {
                // 如果是文件存在   
                if (File.Exists(f))
                {
                    FileInfo fi = new FileInfo(f);
                    if (fi.Attributes.ToString().IndexOf("Readonly") != 1)
                    {
                        fi.Attributes = FileAttributes.Normal;
                    }
                    // 直接删除其中的文件   
                    File.Delete(f);
                }
                else
                {
                    // 如果是文件夹存在   
                    // 递归删除子文件夹   
                    DeleteFolder(f);
                }
            }
            // 删除已空文件夹   
            Directory.Delete(dir);
        }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics