修复上传业务缓存删除逻辑
This commit is contained in:
@@ -43,7 +43,7 @@ public static class LiteDBCacheUtil
|
||||
var dir = GetFilePath(id);
|
||||
var fileStart = GetFileStartName(typeName);
|
||||
var maxNum = GetMaxNumFileName(id, typeName);
|
||||
var fullName = dir.CombinePath($"{fileStart}{maxNum}{ex}");
|
||||
var fullName = dir.CombinePath($"{fileStart}_{maxNum}{ex}");
|
||||
if (isDeleteRule)
|
||||
{
|
||||
//磁盘使用率限制
|
||||
@@ -59,9 +59,14 @@ public static class LiteDBCacheUtil
|
||||
foreach (var d in dirs)
|
||||
{
|
||||
string[] files = Directory.GetFiles(d);
|
||||
//如果文件数量小于4的,退出循环
|
||||
if (files.Length < 4)
|
||||
{
|
||||
break;
|
||||
}
|
||||
//数量超限就删除旧文件
|
||||
//按文件更改时间降序排序
|
||||
var sortedFiles = files.OrderByDescending(file => File.GetLastWriteTime(file));
|
||||
//按文件更改时间排序
|
||||
var sortedFiles = files.OrderBy(file => File.GetLastWriteTime(file)).ToArray();
|
||||
|
||||
// 需要删除的文件数量
|
||||
int filesToDeleteCount = files.Length - Math.Max(2, (int)(files.Length * 0.1));
|
||||
@@ -69,14 +74,14 @@ public static class LiteDBCacheUtil
|
||||
// 删除较旧的文件
|
||||
for (int i = 0; i < filesToDeleteCount; i++)
|
||||
{
|
||||
var fileName = sortedFiles.ElementAt(i);
|
||||
var fileName = sortedFiles[i];
|
||||
if (_dict.TryGetValue(fileName, out object cache1))
|
||||
{
|
||||
DisposeAndDeleteFile(fileName, cache1);
|
||||
}
|
||||
else
|
||||
{
|
||||
DeleteFile(fullName);
|
||||
DeleteFile(fileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -90,7 +95,7 @@ public static class LiteDBCacheUtil
|
||||
{
|
||||
//数量超限就删除旧文件
|
||||
//按文件更改时间降序排序
|
||||
var sortedFiles = files.OrderByDescending(file => File.GetLastWriteTime(file));
|
||||
var sortedFiles = files.OrderBy(file => File.GetLastWriteTime(file)).ToArray();
|
||||
|
||||
// 需要删除的文件数量
|
||||
int filesToDeleteCount = files.Length - LiteDBCacheUtil.config.MaxFileCount;
|
||||
@@ -98,14 +103,14 @@ public static class LiteDBCacheUtil
|
||||
// 删除较旧的文件
|
||||
for (int i = 0; i < filesToDeleteCount; i++)
|
||||
{
|
||||
var fileName = sortedFiles.ElementAt(i);
|
||||
var fileName = sortedFiles[i];
|
||||
if (_dict.TryGetValue(fileName, out object cache1))
|
||||
{
|
||||
DisposeAndDeleteFile(fileName, cache1);
|
||||
}
|
||||
else
|
||||
{
|
||||
DeleteFile(fullName);
|
||||
DeleteFile(fileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -126,7 +131,7 @@ public static class LiteDBCacheUtil
|
||||
if (mb1 > LiteDBCacheUtil.config.MaxFileLength)
|
||||
{
|
||||
//大小超限就返回新的文件
|
||||
var newFullName = dir.CombinePath($"{fileStart}{maxNum + 1}{ex}");
|
||||
var newFullName = dir.CombinePath($"{fileStart}_{maxNum + 1}{ex}");
|
||||
{
|
||||
if (_dict.TryGetValue(fullName, out object cache1))
|
||||
{
|
||||
@@ -239,14 +244,14 @@ public static class LiteDBCacheUtil
|
||||
var fileStart = GetFileStartName(typeName);
|
||||
|
||||
//搜索全部符合条件的文件
|
||||
if (!File.Exists(dir.CombinePath($"{fileStart}{ex}")))
|
||||
if (!File.Exists(dir.CombinePath($"{fileStart}_{ex}")))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
var index = 1;
|
||||
while (true)
|
||||
{
|
||||
var newFileName = dir.CombinePath($"{fileStart}{index}{ex}");
|
||||
var newFileName = dir.CombinePath($"{fileStart}_{index}{ex}");
|
||||
if (System.IO.File.Exists(newFileName))
|
||||
{
|
||||
index++;
|
||||
|
Reference in New Issue
Block a user