生成文件增加额外的随机后缀

This commit is contained in:
ww-rm
2025-05-19 10:30:29 +08:00
parent 15e29a3b8a
commit f452fe8a71
3 changed files with 10 additions and 8 deletions

View File

@@ -57,7 +57,7 @@ namespace SpineViewer.Spine.SpineExporter
var noteSuffix = FileNameNoteSuffix; var noteSuffix = FileNameNoteSuffix;
if (!string.IsNullOrWhiteSpace(noteSuffix)) noteSuffix = $"_{noteSuffix}"; if (!string.IsNullOrWhiteSpace(noteSuffix)) noteSuffix = $"_{noteSuffix}";
var filename = $"ffmpeg_{timestamp}_{FPS:f0}{noteSuffix}{Suffix}"; var filename = $"ffmpeg_{timestamp}_{Guid.NewGuid().ToString()[..6]}_{FPS:f0}{noteSuffix}{Suffix}";
// 导出单个时必定提供输出文件夹 // 导出单个时必定提供输出文件夹
var savePath = Path.Combine(OutputDir, filename); var savePath = Path.Combine(OutputDir, filename);
@@ -86,7 +86,7 @@ namespace SpineViewer.Spine.SpineExporter
{ {
if (worker?.CancellationPending == true) break; // 取消的日志在 GetFrames 里输出 if (worker?.CancellationPending == true) break; // 取消的日志在 GetFrames 里输出
var filename = $"{spine.Name}_{timestamp}_{FPS:f0}{noteSuffix}{Suffix}"; var filename = $"{spine.Name}_{timestamp}_{spine.ID[..6]}_{FPS:f0}{noteSuffix}{Suffix}";
// 如果提供了输出文件夹, 则全部导出到输出文件夹, 否则导出到各自的文件夹下 // 如果提供了输出文件夹, 则全部导出到输出文件夹, 否则导出到各自的文件夹下
var savePath = Path.Combine(OutputDir ?? spine.AssetsDir, filename); var savePath = Path.Combine(OutputDir ?? spine.AssetsDir, filename);

View File

@@ -47,7 +47,7 @@ namespace SpineViewer.Spine.SpineExporter
protected override void ExportSingle(SpineObject[] spinesToRender, BackgroundWorker? worker = null) protected override void ExportSingle(SpineObject[] spinesToRender, BackgroundWorker? worker = null)
{ {
// 导出单个时必定提供输出文件夹 // 导出单个时必定提供输出文件夹
var filename = $"frame_{timestamp}{ImageFormat.GetSuffix()}"; var filename = $"frame_{timestamp}_{Guid.NewGuid().ToString()[..6]}{ImageFormat.GetSuffix()}";
var savePath = Path.Combine(OutputDir, filename); var savePath = Path.Combine(OutputDir, filename);
worker?.ReportProgress(0, $"{Properties.Resources.process} 0/1"); worker?.ReportProgress(0, $"{Properties.Resources.process} 0/1");
@@ -78,7 +78,7 @@ namespace SpineViewer.Spine.SpineExporter
var spine = spinesToRender[i]; var spine = spinesToRender[i];
// 逐个导出时如果提供了输出文件夹, 则全部导出到输出文件夹, 否则输出到各自的文件夹 // 逐个导出时如果提供了输出文件夹, 则全部导出到输出文件夹, 否则输出到各自的文件夹
var filename = $"{spine.Name}_{timestamp}{ImageFormat.GetSuffix()}"; var filename = $"{spine.Name}_{timestamp}_{spine.ID[..6]}{ImageFormat.GetSuffix()}";
var savePath = Path.Combine(OutputDir ?? spine.AssetsDir, filename); var savePath = Path.Combine(OutputDir ?? spine.AssetsDir, filename);
try try

View File

@@ -22,14 +22,16 @@ namespace SpineViewer.Spine.SpineExporter
protected override void ExportSingle(SpineObject[] spinesToRender, BackgroundWorker? worker = null) protected override void ExportSingle(SpineObject[] spinesToRender, BackgroundWorker? worker = null)
{ {
var uniqueSuffix = Guid.NewGuid().ToString()[..6];
// 导出单个时必定提供输出文件夹, // 导出单个时必定提供输出文件夹,
var saveDir = Path.Combine(OutputDir, $"frames_{timestamp}_{FPS:f0}"); var saveDir = Path.Combine(OutputDir, $"frames_{timestamp}_{uniqueSuffix}_{FPS:f0}");
Directory.CreateDirectory(saveDir); Directory.CreateDirectory(saveDir);
int frameIdx = 0; int frameIdx = 0;
foreach (var frame in GetFrames(spinesToRender, worker)) foreach (var frame in GetFrames(spinesToRender, worker))
{ {
var filename = $"frames_{timestamp}_{FPS:f0}_{frameIdx:d6}{Suffix}"; var filename = $"frames_{timestamp}_{uniqueSuffix}_{FPS:f0}_{frameIdx:d6}{Suffix}";
var savePath = Path.Combine(saveDir, filename); var savePath = Path.Combine(saveDir, filename);
try try
@@ -56,14 +58,14 @@ namespace SpineViewer.Spine.SpineExporter
if (worker?.CancellationPending == true) break; // 取消的日志在 GetFrames 里输出 if (worker?.CancellationPending == true) break; // 取消的日志在 GetFrames 里输出
// 如果提供了输出文件夹, 则全部导出到输出文件夹, 否则导出到各自的文件夹下 // 如果提供了输出文件夹, 则全部导出到输出文件夹, 否则导出到各自的文件夹下
var subDir = $"{spine.Name}_{timestamp}_{FPS:f0}"; var subDir = $"{spine.Name}_{timestamp}_{spine.ID[..6]}_{FPS:f0}";
var saveDir = Path.Combine(OutputDir ?? spine.AssetsDir, subDir); var saveDir = Path.Combine(OutputDir ?? spine.AssetsDir, subDir);
Directory.CreateDirectory(saveDir); Directory.CreateDirectory(saveDir);
int frameIdx = 0; int frameIdx = 0;
foreach (var frame in GetFrames(spine, worker)) foreach (var frame in GetFrames(spine, worker))
{ {
var filename = $"{spine.Name}_{timestamp}_{FPS:f0}_{frameIdx:d6}{Suffix}"; var filename = $"{spine.Name}_{timestamp}_{spine.ID[..6]}_{FPS:f0}_{frameIdx:d6}{Suffix}";
var savePath = Path.Combine(saveDir, filename); var savePath = Path.Combine(saveDir, filename);
try try