日期:2014-05-18  浏览次数:20939 次

C# 递归删除文件夹以及文件(包括只读文件)
以下代码示例是用来删除文件夹以及文件(其文件包括只读文件)分享给大家,也许可能对大家多少有一点帮助.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace filedelete
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public const string TARGET_PATH = @"C:\Iris-2";

        private void Form1_Load(object sender, EventArgs e)
        {
            DeleteFolder(TARGET_PATH);
        }

        /// <summary>
        /// 递归删除子文件夹以及文件(包括只读文件)
        /// </summary>
        /// <param name="TARGET_PATH">文件路径</param>
        public void DeleteFolder(string TARGET_PATH)
        {
            //如果存在目录文件,就将其目录文件删除
            if (Directory.Exists(TARGET_PATH))
            {

                foreach (string filenamestr in    Directory.GetFileSystemEntries(TARGET_PATH))
                {
                    if (File.Exists(filenamestr))
                    {
                        FileInfo file = new FileInfo(filenamestr);
                        if (file.Attributes.ToString().IndexOf("ReadOnly") != -1)
                        {
                            file.Attributes = FileAttributes.Normal;//去掉文件属性
                        }
                        File.Delete(filenamestr);//直接删除其中的文件
                    }
                    else {
                        DeleteFolder(filenamestr);//递归删除