创建文件后计时来删除这个文件,类似于缓存,超时删除。文件数量是大量的。可以实现吗?给点代码看看。

解决方案 »

  1.   

    调用dos命令delete用通配符删除文件就是了
      

  2.   

    写个bat定时执行删除就行了
      

  3.   

    using System.Runtime.Caching   ObjectCache _cache=new MemoryCache("filemointor");
               CacheItemPolicy policy=new CacheItemPolicy();
                policy.AbsoluteExpiration=DateTimeOffset.Now.Add(TimeSpan.FromMinutes(2));            policy.RemovedCallback += p =>
                {
                    FileInfo FileInfo = new FileInfo((string) p.CacheItem.Value);
                    FileInfo.Delete();
                };            _cache.Add(Guid.NewGuid().ToString(), @"c:\test.txt", policy);只是给你演示一下,依赖缓存。其实这玩意手段很多,我说依赖缓存,只是因为很多程序员不清楚微软还有这么个东西。当然如果简单点做 task.delay就成
      

  4.   

    @echo off 
    forfiles /p "C:\Users\SZY\Desktop\poe" /s /m *.txt /d -28 /c "cmd /c del /f @path"
    本代码表示删除C:\Users\SZY\Desktop\poe文件夹下存在超过28天的txt文件
    将上述代码写入bat文件中,通过win自带的任务计划程序,设置执行程序的时间
      

  5.   

    这个不算太高,毕竟我们只是缓存了一个string对象。当然这是一个动态过程。一边生成,一边释放,所以一开始会涨一点,不过数据一旦稳定下来,就平衡了。这就好像出生率,死亡率,人口增长率一样。基本上是个平衡情况。当然我只是给你展示了一下依赖缓存,如果没啥特别需要。  
    Task.Delay(TimeSpan.FromSeconds(2)).ContinueWith(p =>
                {
                    //删除文件
                });这样也成