Browse Source

lib/model: Don't remove non-empty .stfolder (#7578)

Jakob Borg 4 years ago
parent
commit
e4c995a321
1 changed files with 7 additions and 2 deletions
  1. 7 2
      lib/model/model.go

+ 7 - 2
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)