diff --git a/lib/model/model.go b/lib/model/model.go index 00f710703..5610e08ae 100644 --- a/lib/model/model.go +++ b/lib/model/model.go @@ -475,8 +475,13 @@ func (m *model) removeFolder(cfg config.FolderConfiguration) { } } if isPathUnique { - // Delete syncthing specific files - cfg.Filesystem().RemoveAll(config.DefaultMarkerName) + // Remove (if empty and removable) or move away (if non-empty or + // otherwise not removable) Syncthing-specific marker files. + fs := cfg.Filesystem() + if err := fs.Remove(config.DefaultMarkerName); err != nil { + moved := config.DefaultMarkerName + time.Now().Format(".removed-20060102-150405") + _ = fs.Rename(config.DefaultMarkerName, moved) + } } m.cleanupFolderLocked(cfg)