/
flendger
/
file-cleaner
Обзор
Документация
Войти
/
flendger
/
file-cleaner
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
3
CI/CD
Аналитика
Безопасность
master
command/move.go
64 строки
1 KB
amikhailin
v_2.1.0: fix files moving. Explicitly copying files to avoid different mounts problem (soft-links problem)
13 май 2026, 00:17
13 май 2026, 00:17
b90dd65
Код
Авторство
О чём код?
package command import ( "file-cleaner/common" "file-cleaner/settings" "file-cleaner/walker" "os" "time" ) type MoveAction struct{} func (m *MoveAction) Run(s *settings.Settings) error { archRoot, err := common.CreateDir(s.ArchDir) if err != nil { return err } moment := time.Now() dPfx := common.DateTimePrefix(moment) var archDir string if !s.GroupByModify { archDir, err = common.CreateSubDir(archRoot, dPfx) if err != nil { return err } } date := common.HistoryDate(s.Days) return walker.Walk(s, func(fPath string) error { olderThan, err := common.FileOlderThan(fPath, date) if err != nil { return err } if !olderThan { return nil } targetDir := archDir if s.GroupByModify { info, err := os.Stat(fPath) if err != nil { return err } targetDir, err = common.CreateSubDir(archRoot, common.DatePrefix(info.ModTime())) if err != nil { return err } } dest, err := common.ResolveDestFile(fPath, targetDir) if err != nil { return err } return common.MoveFile(fPath, dest) }) } func (m *MoveAction) Type() settings.CommandType { return settings.Move }