refactor: 全面重构代码并加白话注释,移动全局并行,去掉去向/重复记录
- 重构后端与前端,全程大白话注释(不懂程序也能看懂) - 移动阶段改为全局并行(MoveAll,工人数=CPU核心数) - 去掉记录每个文件搬去哪了(删除去向回填,解决写库卡顿) - 去掉重复文件标记与统计:重复判定改为 MD5+路径都相同才算,重复则原地忽略不移动;MD5 相同但路径不同仍照常搬 - 媒体库去掉归类目录列,看板去掉重复/归类分布统计
This commit is contained in:
@@ -5,20 +5,22 @@ import (
|
||||
"os"
|
||||
)
|
||||
|
||||
// FFprobeExeName 释放到当前目录的解码器文件名
|
||||
// FFprobeExeName 释放出来的解码器文件名。程序启动时扫到它要跳过,
|
||||
// 免得把自己人(ffprobe)当成媒体文件收走了。
|
||||
const FFprobeExeName = "ffprobe.exe"
|
||||
|
||||
// FFprobePath 返回当前目录下的 ffprobe 可执行路径(Windows/Unix 均可直接执行)
|
||||
// FFprobePath 返回当前目录下 ffprobe 的完整路径。
|
||||
func FFprobePath() string {
|
||||
return "." + string(os.PathSeparator) + FFprobeExeName
|
||||
}
|
||||
|
||||
// HasEmbeddedFFprobe 当前平台是否内嵌了 ffprobe
|
||||
// HasEmbeddedFFprobe 当前编译出的程序里有没有内嵌 ffprobe。
|
||||
// 内嵌的版本只在对应系统里编译时带进去,所以要先问一句有没有。
|
||||
func HasEmbeddedFFprobe() bool {
|
||||
return len(embeddedFFprobe) > 0
|
||||
}
|
||||
|
||||
// ReleaseFFprobe 释放内嵌的 ffprobe 到当前目录(按当前系统自动选择对应版本)
|
||||
// ReleaseFFprobe 把内嵌的 ffprobe 释放(写)到当前目录,才能当程序调用它。
|
||||
func ReleaseFFprobe() error {
|
||||
if len(embeddedFFprobe) == 0 {
|
||||
return fmt.Errorf("当前系统没有内嵌的ffprobe")
|
||||
@@ -26,7 +28,7 @@ func ReleaseFFprobe() error {
|
||||
return os.WriteFile(FFprobeExeName, embeddedFFprobe, 0777)
|
||||
}
|
||||
|
||||
// RemoveFFprobe 删除当前目录下释放的 ffprobe
|
||||
// RemoveFFprobe 整理完把临时释放的 ffprobe 删掉,不留在目录里。
|
||||
func RemoveFFprobe() {
|
||||
_ = os.Remove(FFprobeExeName)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user