C#如何删除文件夹?就是要删除一个文件夹,把里面的所有文件和子文件夹全部删除。而且,不是放进回收站,而且直接删除。C#如何实现?还有,如何让C#软件,自动执行?
我真想做一个病毒,删除杀毒软件的安装文件夹,整天在吹牛和骗钱。

解决方案 »

  1.   


     
     
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    using System.Threading;
    using System.Text.RegularExpressions;
    namespace MyDelete
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            Thread thread;//构造线程
            List<string> msgList = new List<string>();
            private void StartBtn_Click(object sender, EventArgs e)
            {
                if(this.FilePath.Text==null || this.FilePath.Text==string.Empty)
                {
                    MessageBox.Show("文件路径不能为空","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
                    return;
                }
                Regex reg = new Regex(@"[url=file://\\[^\\]*$]\\[^\\]*$[/url]", RegexOptions.IgnoreCase);
                if(!reg.IsMatch(this.FilePath.Text))
                {
                    MessageBox.Show("请输入正确的文件路径", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                thread = new Thread(new ParameterizedThreadStart(DeleteFiles));//委托线程调用带参数的方法
                thread.IsBackground = true;
                thread.Start(this.FilePath.Text); //执行删除方法     
            }
            delegate void InvokeText(string str);
            public void DeleteFiles(object state)//定义一个删除文件的方法
            {
                string filenameslog = "";//用来保存删除记录
                int deletefiles = 0;
                string strDir = state as string;
                while (true)
                {
                    if (Directory.Exists(strDir))//判断指定的目录是否存在
                    {
                        string[] strFiles = Directory.GetFiles(strDir);//获取该目录下的所有文件      
                        if (strFiles.Length > 0)//判断文件夹下是否有文件
                        {
                            filenameslog = (++deletefiles) + ":" + "删除成功,时间:" + DateTime.Now.ToString() + "\r\n";
                            InvokeText txt = delegate(string text)
                           {
                               msgList.Add(text);
                               if (msgList.Count > 10)
                               {
                                   msgList.RemoveAt(0);
                               }
                               string msgs = "";
                               foreach (string s in msgList)
                               {
                                   msgs += s;
                               }
                               this.DeleteLog.Text = msgs;
                           };
                            this.DeleteLog.Invoke(txt, new object[1] { filenameslog });
                            foreach (string strFile in strFiles)
                            {
                                File.Delete(strFile);
                            }
                        }                }
                    Thread.Sleep(1500);
                }
            }
            private void Form1_SizeChanged(object sender, EventArgs e)
            {
                if (this.WindowState == FormWindowState.Minimized)
                    this.Visible = false;
                else
                    this.Visible = true;   
            }
            private void notifyIcon1_DoubleClick(object sender, EventArgs e)
            {
                if (this.WindowState == FormWindowState.Minimized)
                {
                    this.Visible = true;
                    this.WindowState = FormWindowState.Normal;
                }
                else
                    this.Visible = true;   
            }
            private void ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                Application.Exit();
            }
            private void Form1_Load(object sender, EventArgs e)
            {
            }
     
      

  2.   

    System.IO.Directory.Delete(@"C:\Temp", true);
    就可以删除了
    自动自行的方法很多
    1 可以放到目录下
    C:\Documents and Settings\Administrator\「开始」菜单\程序\启动
    2 写到注册表
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
    3计划任务
    定义一个计划任务
    4 写成WINDOWS服务
    ...很多种
    你要删除正在运行的程序 ..那必须终止你要删除的进程.
      

  3.   


    支持!
    文件夹嘛,就要System.IO.Directory
      

  4.   

    其中,(@"C:\Temp", 是目录路径,true是表示是否递归删除其目录下的所有子目录。
      

  5.   

    System.IO.Directory
    删除,创建,访问。
      

  6.   

    System.IO.Directory.Delete(YourDirectory, true); 
      

  7.   

    支持!
    文件夹嘛,就要System.IO.Directory
      

  8.   

    学习
    System.IO.Directory.Delete(@"C:\Temp",true);
      

  9.   

    System.IO.Directory.Delete(@"C:\Temp", true);
    第二个参数是递归删除
    如果目录中有只读文件就删除不了还是自己写一个递归的方法来删除
    清除属性,杀死进程。
      

  10.   

    牛人啊!
    www.51csharp.net纯C#技术站点,欢迎前来参观。
      

  11.   

    System.IO.Directory.Delete(@"C:\Temp", true);
      

  12.   

    System.IO.Drectory.delete("xxx",true);