求语句:怎样按时间条件删除文件和文件夹?

cde32 2012-10-25 11:28:29
我想每次在这里新建文件夹的同时,删除当前目录下10小时前新建的文件和文件夹,该怎么写语句?
private void createFolder()
{
if (!Directory.Exists(uploadpath))
{
Directory.CreateDirectory(uploadpath);//想在这里新建文件夹的同时删除旧文件。
}
}

...全文
346 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSMSDN 2012-11-10
  • 打赏
  • 举报
回复
文件一般以时间命名吧,一般用DateTime.Now.Ticks;命名文件名,这样就能删除10小时之前的文件了
CSMSDN 2012-11-10
  • 打赏
  • 举报
回复
这没有关系的,文件名不会重复的,
cde32 2012-11-10
  • 打赏
  • 举报
回复
引用 19 楼 CSMSDN 的回复:
文件一般以时间命名吧,一般用DateTime.Now.Ticks;命名文件名,这样就能删除10小时之前的文件了
不是的,有好多文件和文件夹!18楼在另一个帖子里帮助解决了!
f15173216722 2012-11-09
  • 打赏
  • 举报
回复
搞定了吧?感谢楼主加分
cde32 2012-10-26
  • 打赏
  • 举报
回复
是不是路径的问题?uploadpath和filepath没有关联?
请高手看看我在9楼写的文件件结构,帮我改一下路径变量吧~~
先谢了,百分结贴。
cde32 2012-10-26
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]
C# code

private static void FindFiles(string filepath)
{
if(filepath!=null)
{
DirectoryInfo di = new DirectoryInfo(filepath);
if(di!=null)
{
FileInfo[] files = di.GetFiles("*.cs",SearchOptio……
[/Quote]
我添加了你这段代码,为什么就不能上传文件了?我的代码:

* 按照日期自动创建存储文件夹
*/
private void createFolder()
{
if (!Directory.Exists(uploadpath))
{
Directory.CreateDirectory(uploadpath);




private static void FindFiles(string filepath)
{
if(filepath!=null)
{
DirectoryInfo di = new DirectoryInfo(filepath);
if(di!=null)
{
FileInfo[] files = di.GetFiles("*.cs",SearchOption.AllDirectories);
foreach(FileInfo fi in files)
{
DateTime filect = fi.CreationTime;
if(DateTime.Now.Subtract(filect).Hours>=10)
{
fi.Delete();
}
}
}
}
}







}
}
Tragedy 2012-10-26
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]

C# code

private static void FindFiles(string filepath)
{
if(filepath!=null)
{
DirectoryInfo di = new DirectoryInfo(filepath);
if(di!=null)
{
FileInfo[] files = di.GetFiles("*.cs",SearchOption.AllDi……
[/Quote]

在foreach后在加上创建文件夹即可。
Directory.CreateDirectory(uploadpath);//想在这里新建文件夹的同时删除旧文件
kimifdw 2012-10-26
  • 打赏
  • 举报
回复

private static void FindFiles(string filepath)
{
if(filepath!=null)
{
DirectoryInfo di = new DirectoryInfo(filepath);
if(di!=null)
{
FileInfo[] files = di.GetFiles("*.cs",SearchOption.AllDirectories);
foreach(FileInfo fi in files)
{
DateTime filect = fi.CreationTime; if(DateTime.Now.Subtract(filect).Hours>=10)
{
fi.Delete();
}
}
}
}
}
cde32 2012-10-26
  • 打赏
  • 举报
回复
谁帮着写一下代码啊~~
cde32 2012-10-26
  • 打赏
  • 举报
回复
路径?还是别的?
wuyq11 2012-10-25
  • 打赏
  • 举报
回复
List<string> files = new List<string>();
DateTime begin = ...;
DateTime end = ..;
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 删除
cde32 2012-10-25
  • 打赏
  • 举报
回复
谢谢!但是怎样删除10小时前的所有过期文件和文件夹?我只会照搬代码,能帮我写全吗?
[Quote=引用 5 楼 的回复:]

DirectoryInfo di = new DirectoryInfo(uploadpath);
di.GetFiles()[0].CreationTime
[/Quote]
litojoe 2012-10-25
  • 打赏
  • 举报
回复
DateTime date = new FileInfo(文件名).CreationTime;


按照这个date去判断
快溜 2012-10-25
  • 打赏
  • 举报
回复
DirectoryInfo di = new DirectoryInfo(uploadpath);
di.GetFiles()[0].CreationTime
cde32 2012-10-25
  • 打赏
  • 举报
回复
文件和文件夹有好多,最好时能按时间条件直接删除全部过期文件和文件夹。
cde32 2012-10-25
  • 打赏
  • 举报
回复
当前目录既有文件夹也有文件。我不会写语句,怎么删除10小时前的文件和文件夹?怎样读取文件创建时间?
谢谢!
bdmh 2012-10-25
  • 打赏
  • 举报
回复
你肯定知道旧文件路径吧,直接delete
XBodhi. 2012-10-25
  • 打赏
  • 举报
回复
如果你文件名 是 时间命名的就好办了,直接删除,如果不是,你读取文件的 的创建时间 然后删除。
cde32 2012-10-25
  • 打赏
  • 举报
回复
楼上可以直接帮我写语句吗?
实在不行只好新开一贴了……
insus 2012-10-25
  • 打赏
  • 举报
回复
加载更多回复(1)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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