读书人

C#复制文件夹剔除文件夹的方法

发布时间: 2012-10-20 14:12:48 作者: rapoo

C#复制文件夹,删除文件夹的方法
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);        }

读书人网 >C#

热点推荐