Potrzebuję mieć funkcję synchronizacji plików w mojej aplikacji .NET. Czy mogę skorzystać z rsync? Czy jest dostępne jakieś API?Czy istnieje .NET API przy użyciu rsync?
Odpowiedz
Możesz użyć kodu źródłowego dostarczonego z DeltaCopy, który jest opakowaniem "Przyjaznym Windowsowi" do oryginalnego RSync.
Źródło jest napisane w języku C++, więc nie jest to dokładnie .Net, ale możesz napisać zarządzane opakowanie C++ i używać ich.
To nie jest bezpośrednie rozwiązanie, wiem, ale może być nieco pomocne. (innymi słowy, HTH)
Jeśli szukasz jakiegoś prostego automatyzacji można po prostu napisać mały otoki, który wywołuje rsync poprzez System.Diagnostic.Process
Czytałem gdzieś, że ktoś circa 2006 stworzył port rsync w C#, ale szczerze mówiąc z wami nie rozważałby korzystania z niego, ponieważ jest bardzo popularny i niemożliwy do znalezienia.
DeltaCopy to po prostu wrapper wokół pliku wykonywalnego rsync. Jednak samą bibliotekę librsync można zbudować zarówno w systemie Windows, jak i UNIX i GNU/Linux (patrz: their README i ta EE thread). Jest to kolejna opcja do rozważenia. Nadal będziesz potrzebował jakiegoś niezarządzanego, zarządzanego interopu.
Jest to implementacja C# rsync na github z niektórych ostatnich zatwierdzeń:
To jest trochę taka sama: https://github.com/OctopusDeploy/Octodiff – NicoJuicy