GMS.Core.Upload/ThumbnailService.cs
(开头部分) 4KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Linq;
using System.Collections.Generic;
using System.IO;
using System.Text.RegularExpressions;
using GMS.Framework.Utility;
using System.Threading.Tasks;
using System.Threading;
using GMS.Core.Config;
namespace GMS.Core.Upload
{
public class ThumbnailService
{
public static void HandleImmediateThumbnail(string filePath,Timming timming = Timming.Immediate)
{
//正则从文件路径里匹配出上传的文件夹目录.....
var m = Regex.Match(filePath, @"^(.*)\\upload\\(.+)\\(day_\d+)\\(\d+)(\.[A-Za-z]+)$", RegexOptions.IgnoreCase);
if (!m.Success)
return;
var root = m.Groups[1].Value;
var folder = m.Groups[2].Value;
var subFolder = m.Groups[3].Value;
var fileName = m.Groups[4].Value;
var ext = m.Groups[5].Value;
foreach (var pair in UploadConfigContext.ThumbnailConfigDic
.Where(t => t.Key.StartsWith(folder.ToLower() + "_") && t.Value.Timming == timming))
{
var size = pair.Value;
var thumbnailFileFolder = string.Format("{0}\\upload\\{1}\\{2}\\thumb",
root, folder, subFolder);
if (!Directory.Exists(thumbnailFileFolder))
Directory.CreateDirectory(thumbnailFileFolder);
var thumbnailFilePath = string.Format("{0}\\upload\\{1}\\{2}\\thumb\\{3}_{4}_{5}{6}",
root, folder, subFolder, fileName, size.Width, size.Height, ext);
ThumbnailHelper.MakeThumbnail(filePath, thumbnailFilePath, size);
}
}
public static void HandlerLazyThumbnail(int intervalMunites)
{
var watcher = new FileSystemWatcher(UploadConfigContext.UploadPath);
watcher.IncludeSubdirectories = true;
watcher.Created += (s, e) =>
{
HandleImmediateThumbnail(e.FullPath, Timming.Lazy);
};
watcher.EnableRaisingEvents = true;
while (true)
{
HandlerLazyThumbnail();
GC.Collect();
后面还有 61 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
