c#删除文件夹下的文件

xugan666 2010-09-04 11:54:00
请先看好我的问题,因为在网上我没有找到一个适合我用的。可能是我太笨了。。。

比如D盘里有一个文件夹test。里面有很多txt文本。文件名后面有创建的时间,我想指定时间范围来删除文件

比如在20100303到20100703之间生成了N多Tex,我想根据这个时间来删除。


,并且用按钮点击删除。

有一个窗体。面有个按钮button1 。点击按钮的时候就删除我需要删除的文件。然后我创建了一个delFile类。
就2个。。。如果用不到该类也行。只要能完成操作就行了
...全文
2329 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
xugan666 2010-09-04
  • 打赏
  • 举报
回复
回复18楼,添加该命名了。但还是无法引用到。

回复19楼,我在前面加了public了。。但还是不行啊。方法调用不出来。

wuyq11 2010-09-04
  • 打赏
  • 举报
回复
3楼方法就不错了,自己怎么调用的
public class DelFile
{
public string path{get;set;}//路径
public voud deletefile()
{//代码}
}
DeleFile d=new DeleFile();或DeleFile("路径");
d.path="";
d.deletefile();
DLL添加引用using 命名空间;
兔子-顾问 2010-09-04
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 xugan666 的回复:]
删除某问题了。。。但是,我在窗体下调用的时候引用不到该类?已经实例化了,点不出来该方法
[/Quote]
最前面添加引用
using System.IO;
xugan666 2010-09-04
  • 打赏
  • 举报
回复
回复16楼,你得该方法在判断时间的时候出错,

运算符>< 无法应用于System 。Datatime 和int类型的操作数?
wgc 2010-09-04
  • 打赏
  • 举报
回复
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();
}
}
}
}
xugan666 2010-09-04
  • 打赏
  • 举报
回复
3楼,你人呢。。。别copy人不见了。。。
xugan666 2010-09-04
  • 打赏
  • 举报
回复
删除某问题了。。。但是,我在窗体下调用的时候引用不到该类?已经实例化了,点不出来该方法
shixiujin 2010-09-04
  • 打赏
  • 举报
回复
支持3楼!
xugan666 2010-09-04
  • 打赏
  • 举报
回复
晕,我是在winform窗体里面删除,不是在控制台程序里面。。。
兔子-顾问 2010-09-04
  • 打赏
  • 举报
回复

Console.ReadKey();
删掉即可。
xugan666 2010-09-04
  • 打赏
  • 举报
回复
另外我屏蔽了系统生成的累,调用3楼的方法。。

如果应用程序没有控制台或控制台输入已通过文件进行了重定向,则无法读取键。请尝试使用 Console.Read。

出现这个错误
xugan666 2010-09-04
  • 打赏
  • 举报
回复
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
{


}
}
Peter200694013 2010-09-04
  • 打赏
  • 举报
回复
FileInfo fi = new FileInfo(filepath);
fi.Delete();
捷哥1999 2010-09-04
  • 打赏
  • 举报
回复
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();

}
ajq1989 2010-09-04
  • 打赏
  • 举报
回复
q107770540 2010-09-04
  • 打赏
  • 举报
回复
DirectoryInfo dir = new DirectoryInfo(@"d:\ test");
FileInfo[] txtfiles = dir.GetFiles("*.txt);
Foreach( FileInfo f in txtfiles )
{
Console.WriteLine("Creation time is : {0}", f.CreationTime); //获取创建时间
//后边再根据时间删除

}
兔子-顾问 2010-09-04
  • 打赏
  • 举报
回复
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();
}
mars199 2010-09-04
  • 打赏
  • 举报
回复
哦,不懂帮顶
  • 打赏
  • 举报
回复
我有个疑问,难道你连点击按钮之后如何执行一个类中的方法也不会吗?这个疑问不解决,别的不敢花时间回复。
zhang_bamboo 2010-09-04
  • 打赏
  • 举报
回复
mark 收藏一下
加载更多回复(10)

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧