Ich versuche, eine Synchronisierung von Dateien vom Remotestandort zum lokalen Pfad unter Verwendung der WinSCP .NET-Bibliothek durchzuführen, so dass Dateien Neue oder aktualisierte Dateien im Quellordner werden in das Ziel heruntergeladen und Dateien im Ziel, die aus dem Quellordner entfernt wurden, werden vom Ziel gelöscht.WinSCP .NET SynchronizeDirectories löscht lokale Dateien nicht, nachdem sie aus dem Remote-Ordner entfernt wurden
Der Aufruf ausgewertet wird so zu etwas zu synchronisieren:
var fileMask = "/FTP_root/Folder_*/*.png>2016-01-01 00:00:00";
var results = session.SynchronizeDirectories(SynchronizationMode.Local,
@"C:\ProjectFolder\AppData",
FTPDirectory,
true,
false,
SynchronizationCriteria.Time,
new TransferOptions() { FileMask = fileMask });
Zur Erinnerung, die Parameter für SynchronizeDirectories sind:
SynchronizationMode
LocalPath
RemotePath
RemoveFiles
Mirror
SynchronizationCriteria
TransferOptions
Was ich mit diesem Code zu finden bin ist, dass neue und umbenannte Dateien werden wie erwartet heruntergeladen, aber Dateien, die aus dem Remote-Ordner entfernt wurden, werden nicht gelöscht, und bei umbenannten Dateien befinden sich der alte und der neue Dateiname nach der Synchronisierung im lokalen Ordner.