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ń:
- 1. Jak wyświetlić rsync --progress w przeglądarce internetowej przy użyciu DJango?
- 2. Czy mogę programowo zainstalować nową wersję .NET przy użyciu .NET?
- 3. API przy użyciu sockaddr_storage
- 4. Funkcja wstążki przy użyciu .Net 4.5
- 5. Generowanie kodu przy użyciu .net
- 6. Aktualizacja rsync na OS X przy użyciu Homebrew
- 7. Czy istnieje interfejs API do kontroli prędkości .NET?
- 8. Przykład aplikacji .net przy użyciu Amazon SQS
- 9. Jak sprawdzić, czy katalog istnieje przy użyciu C++ i WinAPI
- 10. Bezpieczne przechowywanie tokenu uwierzytelniania przy użyciu .NET
- 11. Diff'ing przy użyciu TFS API
- 12. jak sprawdzić, czy 2 pliki są równe przy użyciu .NET?
- 13. Czy można ponownie uruchomić komputer przy użyciu "czystego" .NET i * bez * przy użyciu p/invoke?
- 14. Jak sprawdzić, czy kolejka JMS istnieje przy użyciu języka Java?
- 15. Czy rsync obsługuje synchronizację One to Many?
- 16. Czy istnieje parser .NET CQL?
- 17. Czy istnieje sposób na odpytywanie przy użyciu usługi WatchService?
- 18. Czy istnieje biblioteka programowania funkcjonalnego dla .NET?
- 19. Czy istnieje sposób na uzyskanie reprezentacji ciągów wartości HRESULT przy użyciu interfejsu API win?
- 20. Czy istnieje sposób na zmianę nazwy repozytorium na Bitbucket przy użyciu ich API
- 21. Trwałe przechowywanie zaszyfrowanych danych przy użyciu .Net
- 22. aws lambda przy użyciu .net core 2.0
- 23. ZeroMQ DllNotFoundException przy użyciu powiązań .Net
- 24. Czy istnieje api notebooka IPython?
- 25. Czy mogę polegać na CallContext przy użyciu Web API?
- 26. Czy istnieje biblioteka do rozpakowania plików .Z przy użyciu VB.NET?
- 27. Testowanie, czy zdalna kolejka wiadomości istnieje (przy użyciu C#).
- 28. Czy istnieje przykład użycia narzędzia pobierania przy użyciu metody flowjs?
- 29. przy użyciu stat, aby wykryć, czy plik istnieje (wolno?)
- 30. Czy istnieje sposób wdrożenia w VM VM przy użyciu Capistrano?
To jest trochę taka sama: https://github.com/OctopusDeploy/Octodiff – NicoJuicy