本地数据缓存de清理机制
时间:2010-10-27 来源:Choas
缓存文件的大小差不多,在2M左右,简单的根据文件的个数来进行限制,超过一定的数量则删除较旧的文件。
文件的产生是和用户的访问相关联的,每访问一个则产生一个sgy文件,一般一个用户一天不会访问的文件个数应该不会太多。
是否合理请各位读者评论。
public bool ClearLocalSgyDir()
{
try
{
DeleteOldFiles(LocalSgyRootPath, 50, 24);
DeleteOldFiles(LocalSgyRootPath, 100, 8);
DeleteOldFiles(LocalSgyRootPath, 150, 4);
DeleteOldFiles(LocalSgyRootPath, 200, 0);
}
catch(Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message, "Warning");
return false;
}
return true;
}
/// <summary>
/// 删除缓存文件夹中时间较久的sgy文件(根据最后访问时间)
/// </summary>
/// <param name="dirPath">缓存文件目录</param>
/// <param name="fileCountThreshold">文件个数限制</param>
/// <param name="hoursThreshold">小时数限制。24:只保留当天的;-1:全部删除</param>
private void DeleteOldFiles(string dirPath, int fileCountThreshold, int hoursThreshold)
{
string[] tempFileNameList = Directory.GetFiles(dirPath, "*.sgy", SearchOption.TopDirectoryOnly);
if (fileCountThreshold < tempFileNameList.Length)
{
foreach (string fileName in tempFileNameList)
{
var fileAge = DateTime.Now - File.GetLastAccessTime(fileName);
if (fileAge.Hours > hoursThreshold)
{
File.Delete(fileName);
}
}
}
}
相关阅读 更多 +