目前使用的删除方法是:
public static void Clean0ldDatagramLog(string Mulu)
var limit = DateTime.Now.AddMonths(-12);
foreach (DirectoryInfo di in new DirectoryInfo(Mulu) . EnumerateDirectories())
foreach (DirectoryInfo sdi in di. EnumerateDirectories())
{
if (sdi.LastAccessTime < limit)
{
try { sdi.Delete(true); } catch { }
}
}
}
但是经过测试发现文件依然还是没有删除。。。。请大佬们指导小弟一下
public static void Clean0ldDatagramLog(string Mulu)
{
var limit = DateTime.Now.AddMonths(-3);
foreach (DirectoryInfo di in new DirectoryInfo(Mulu) . EnumerateDirectories())
if (sdi.LastAccessTime < limit)
{
try { sdi.Delete(true); } catch { }
}
}
要删除的目录结构为传入参数Mulu文件夹下有很多的txt文件。。只删除3个月之前的txt文件。。保留3个月内的
你删除的是目录,不是文件,删除文件用 File.Delete。
我从百度上找了File类的删除文件方法。但是我只想删除3个月之前的且文件名字变化不定的txt文件应该如何修改??
string path = Environment.CurrentDirectory;
string pattern = "*.txt";
string[] strFileName = Directory.GetFiles(path, pattern);
foreach (var item in strFileName)
{
File.Delete(item);
}
private void DelCmd(string path,int day)
{
if (!Directory.Exists(path)) return;
DirectoryInfo oDirectory = new DirectoryInfo(path);
try
{
foreach (DirectoryInfo file in oDirectory.GetDirectories())
{
DateTime dt = file.CreationTime;//获取目录或者文件的创建 日期
if ((DateTime.Now - dt).TotalMinutes > day * 24 * 60)
{
file.Delete(true);
}
}
}
catch (Exception ex)
{
}
}
兄弟,你走运啊
private static void DeleteFolder(string dir)
{
foreach (string d in Directory.GetFileSystemEntries(dir))
{
if (File.Exists(d))
{
FileInfo fi = new FileInfo(d);
if (fi.Attributes.ToString().IndexOf("ReadOnly") != -1)
fi.Attributes = FileAttributes.Normal;
File.Delete(d);//直接删除其中的文件
}
else
{
DirectoryInfo d1 = new DirectoryInfo(d);
if (d1.GetFiles().Length != 0)
{
DeleteFolder(d1.FullName);////递归删除子文件夹
}
Directory.Delete(d);
}
}
}
private static void DeleteLogFolder(string dir)
{
DirectoryInfo directory = new DirectoryInfo(dir);
FileInfo[] filelist = directory.GetFiles();
DirectoryInfo[] directorylist = directory.GetDirectories();
foreach (var dirct in directorylist)
{
DeleteLogFolder(dirct.FullName);
}
foreach (FileInfo files in filelist)
{
if (files.CreationTime < DateTime.Now.AddDays(-30))
{
files.Delete();
}
}
}
我只想删除指定文件夹下三个月之前的文件(不是文件夹)。。目录结构为D:\ZZJ\Hospital,目录下全部都是txt文件。简略一下是不是只会执行这里面的代码??
foreach (FileInfo files in filelist)
{
if (files.CreationTime < DateTime.Now.AddDays(-30))
{
files.Delete();
}
}
是的,你可以把它做成一个通用的方法,看自己变通喽 你获取一个文件夹的文件,然后判断文件的日期,根据日期小蜜蜂论坛顶帖机删文件
这个方式,删除指定文件夹下面超过设置时间的文件
#region 删除目录
/// <summary>
/// 删除目录
/// </summary>
/// <param name="dir">要删除的目录路径和名称</param>
public static void DeleteDir(string dir)
{
if (dir.Length == 0) return;
if (Directory.Exists(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir))
Directory.Delete(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir);
}
#endregion
#region 删除文件
/// <summary>
/// 删除文件
/// </summary>
/// <param name="file">要删除的文件路径和名称</param>
public static void DeleteFile(string file)
{
if (File.Exists(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + file))
{
File.Delete(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + file);
}
}
#endregion