fix: 添加文件覆盖保护避免去重冲突
This commit is contained in:
@@ -393,15 +393,19 @@ async Task DeduplicateFramesAsync(string imagesDir, double threshold)
|
|||||||
{
|
{
|
||||||
// Use temp name to avoid conflicts
|
// Use temp name to avoid conflicts
|
||||||
var tempName = Path.Combine(imagesDir, $"temp_{i + 1:D4}.jpg");
|
var tempName = Path.Combine(imagesDir, $"temp_{i + 1:D4}.jpg");
|
||||||
|
// Delete temp file first if exists
|
||||||
|
if (File.Exists(tempName)) File.Delete(tempName);
|
||||||
File.Move(remainingFiles[i], tempName);
|
File.Move(remainingFiles[i], tempName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Rename temp files to final names
|
// Rename temp files to final names (with overwrite support)
|
||||||
var tempFiles = Directory.GetFiles(imagesDir, "temp_*.jpg").OrderBy(f => f).ToList();
|
var tempFiles = Directory.GetFiles(imagesDir, "temp_*.jpg").OrderBy(f => f).ToList();
|
||||||
for (int i = 0; i < tempFiles.Count; i++)
|
for (int i = 0; i < tempFiles.Count; i++)
|
||||||
{
|
{
|
||||||
var finalName = Path.Combine(imagesDir, $"frame_{i + 1:D4}.jpg");
|
var finalName = Path.Combine(imagesDir, $"frame_{i + 1:D4}.jpg");
|
||||||
|
// Delete final file first if exists (fix: overwrite existing file)
|
||||||
|
if (File.Exists(finalName)) File.Delete(finalName);
|
||||||
File.Move(tempFiles[i], finalName);
|
File.Move(tempFiles[i], finalName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user