请先看好我的问题,因为在网上我没有找到一个适合我用的。可能是我太笨了     比如D盘里有一个文件夹test。里面有很多txt文本。文件名后面有创建的时间,我想指定时间范围来删除文件比如在20100303到20100703之间生成了N多Tex,我想根据这个时间来删除。
,并且用按钮点击删除。      有一个窗体。面有个按钮button1 。点击按钮的时候就删除我需要删除的文件。然后我创建了一个delFile类。
就2个如果用不到该类也行。只要能完成操作就行了

解决方案 »

  1.   

    static void Main(string[] args)
    {
        List<string> files = new List<string>();
        DateTime begin = DateTime.ParseExact("20100303", "yyyyMMdd", null);
        DateTime end = DateTime.ParseExact("20100703", "yyyyMMdd", null);
        foreach (string filepath in Directory.GetFiles(@"c:\test", "*.txt", SearchOption.AllDirectories))
        {
            FileInfo fi = new FileInfo(filepath);
            if (fi.CreationTime>=begin && fi.CreationTime<= end)
            {
                files.Add(filepath);
            }
        }    //files就是你你要的所有符合的文件路径(绝对路径)
        
        Console.ReadKey();
    }
      

  2.   

    DirectoryInfo dir = new DirectoryInfo(@"d:\ test");
    FileInfo[] txtfiles = dir.GetFiles("*.txt);
    Foreach( FileInfo f in txtfiles )
    {
      Console.WriteLine("Creation time is : {0}", f.CreationTime); //获取创建时间
      //后边再根据时间删除
     
    }
      

  3.   

    FileSystemInfo.CreationTime 属性 
    获取或设置当前 FileSystemInfo 对象的创建时间。DirectoryInfo di = new DirectoryInfo(@"路径");
    int idx = 0;foreach (FileInfo fi in di.GetFiles("*.txt"))
    {
      if(fi.CreationTime.CompareTo(Convert.ToDateTime("20100303")>0 && fi.CreationTime.CompareTo(Convert.ToDateTime("20100703")<0)
         fi.Delete();}
      

  4.   

    FileInfo fi = new FileInfo(filepath);
    fi.Delete();
      

  5.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Windows.Forms;namespace DelFile
    {
        static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
        }
    }
    生成该窗体的时候,已经有这个类,但是如果按照3楼的那个方法。在我自己创建的类中写的话,就会报Main这个错误。
    另外一楼,我的大概意思是这样的。只要你写出这个类的方法就行了。关于调用你就不用操心了。。这个是我创建的一个类using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;namespace DelFile
    {
       public  class DelFile
        {
          
          
        }
    }
      

  6.   

    另外我屏蔽了系统生成的累,调用3楼的方法。。如果应用程序没有控制台或控制台输入已通过文件进行了重定向,则无法读取键。请尝试使用 Console.Read。出现这个错误
      

  7.   


    Console.ReadKey();
    删掉即可。
      

  8.   

       晕,我是在winform窗体里面删除,不是在控制台程序里面
      

  9.   

      3楼,你人呢别copy人不见了
      

  10.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;namespace DelFile
    {
      public class DelFile
      {
        DirectoryInfo di;
        public DelFile(string path)
        {
            di = new DirectoryInfo(path);
        }
        public DeleteFile()
        {
            foreach (FileInfo fi in di.GetFiles("*.txt"))
            {
                if(fi.CreationTime.CompareTo(Convert.ToDateTime("20100303")>0 && fi.CreationTime.CompareTo(Convert.ToDateTime("20100703")<0)
         fi.Delete();
    }
        }
      }
    }
      

  11.   

    回复16楼,你得该方法在判断时间的时候出错,运算符>< 无法应用于System 。Datatime 和int类型的操作数?
      

  12.   

    最前面添加引用
    using System.IO;
      

  13.   

    3楼方法就不错了,自己怎么调用的
    public class DelFile
      {
        public string path{get;set;}//路径
        public voud deletefile()
       {//代码}
      }
    DeleFile d=new DeleFile();或DeleFile("路径");
    d.path="";
    d.deletefile();
    DLL添加引用using 命名空间;
      

  14.   

    回复18楼,添加该命名了。但还是无法引用到。回复19楼,我在前面加了public了。。但还是不行啊。方法调用不出来。
      

  15.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;namespace DelFile
    {
        public class DelFile
        {
            static void Main(string[] args)
            {
                   }
            public DelFile()
            {            List<string> files = new List<string>();
                DateTime begin = DateTime.ParseExact("2010/03/03", "yyyy/MM/dd", null);
                DateTime end = DateTime.ParseExact("2010/11/03", "yyyy/MM/dd", null);
                foreach (string filepath in Directory.GetFiles(@"D:\test", "*.txt", SearchOption.AllDirectories))
                {
                    FileInfo fi = new FileInfo(filepath);
                    if (fi.CreationTime >= begin && fi.CreationTime <= end)
                    {
                        files.Add(filepath);
                    }
                }
            
            }    }
        
    }
    我这样声明都点不出来
      

  16.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;namespace YourNamespace
    {
        public class DelFile
        {
            /// <summary>
            /// 指定目录、起始结束时间、扩展名删除文件
            /// </summary>
            /// <param name="start">开始时间</param>
            /// <param name="end">结束时间</param>
            /// <param name="filter">过滤字符串,例如:*.txt</param>
            /// <param name="directory_path">目录的绝对路径或相对路径</param>
            /// <param name="recursion">是否删除子目录中符合条件的文件</param>
            public static void DelFile(DateTime start,DateTime end,string filter,string directory_path,bool recursion)
            {
                foreach (string filepath in Directory.GetFiles(directory_path, filter, recursion?SearchOption.AllDirectories: SearchOption.TopDirectoryOnly))
                {
                    FileInfo fi = new FileInfo(filepath);
                    if (fi.CreationTime >= begin && fi.CreationTime <= end)
                    {
                        fi.Delete();
                    }
                }            
            }
        }
    }
    调用方法YourNamespace.DelFile.DelFile(
        DateTime.ParseExact("2010/03/03", "yyyy/MM/dd", null),//开始时间
        DateTime.ParseExact("2010/11/03", "yyyy/MM/dd", null),//结束时间
        "*.txt",//过滤器
        @"D:\test",//目录
        true);//递归删除你写的没问题,只是函数没写返回值类型。
      

  17.   

    回复23楼,你的begin是否没有声明??? 我这里显示没有声明。。我把我的代码复制出来。---------------------------------------------------------------------------------------
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.IO;
    using System.Windows.Forms;namespace DelFile
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            { 
            }    }}
    上面是winform
    ---------------------------------------------------------------------------------------
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    namespace DelFile
    {
        public class DelFile
        {    }
        
    }
    这里是我创建的一个类。--------------------------------------------------------------------------------------
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Windows.Forms;namespace DelFile
    {    static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
        }
    }
    这是系统自动自动生成的。。
      

  18.   

    粘贴时候忘记修改名字了。begin->start
      

  19.   

    good student, lazy guy.