2011-01-28 11 views
9

Burada verilen dosya eşitleme örneği - http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=sync&ReleaseId=3424 yalnızca aynı makinede dosya eşitleme hakkında konuşur. Bir ağ üzerinde dosyalar için çalışmasını sağlamak için WCF gibi bir şey kullanmanın çalışan bir örneğine rastladı mı?Dosyaları ağ üzerinden senkronize etmek için Microsoft Sync Framework'ü kullanma

Bryant'ın örneği - http://bryantlikes.com/archive/2008/01/03/remote-file-sync-using-wcf-and-msf.aspx tamamlanmadı ve yalnızca tek yönlü bir senkronizasyon ve idealin altında.

+0

ama bu mümkün görünmüyor: Tüm bu noktada ihtiyaç vardır

SyncOrchestrator üzerinde Senkronize aramak. Dosya sağlayıcı çok sayıda iç sınıf kullanıyor ve onları proxy yapmanın bir yolunu göremiyorum. IP yolu kullanarak ağ yolunu kullanıyorum – Timores

cevap

1

Senkronizasyon çerçevesi, kullanılabilir bir ağ paylaşımına sahip olduğunuz sürece dosyaları ağ üzerinden senkronize edebilir.

string networkPath = @"\\machinename\sharedfolderlocation"; 

    FileSyncProvidor provider = new FileSyncProvider(networkPath); 

bu şekilde iki yönlü senkronizasyon yapmak için bir FileSyncProvider oluşturmanız gerekir: FileSyncProvider yapıcısı olarak

okuyup yazma izinleri için olduğunu bir ağ paylaşımına konuma rootDirectoryPath set Hem kaynak hem de hedef sistemler için ve ağır yükü sizin yerinize yapmak için SyncOrchestrator'ı kullanın.

Bir örnek: Bu ne yapar

string firstLocation = @"\\sourcemachine\sourceshare"; 
    string secondLocation = @"\\sourcemachine2\sourceshare2"; 

    FileSyncProvidor firstProvider = new FileSyncProvider(firstLocation); 
    FileSyncProvidor secondProvider = new FileSyncProvider(secondLocation); 

    SyncOrchestrator orchestrator = new SyncOrchestrator(); 
    orchestrator.LocalProvider = firstProvider; 
    orchestrator.RemoteProvider = secondProvider; 
    orchestrator.Direction = SyncDirectionOrder.DownloadAndUpload; 

iki FileSync sağlayıcıları tanımlamak ve orkestraci iki yönde dosyaları senkronize edecektir. Sağlayıcılar içinde yer alan dizinlerdeki dosyaları oluşturur, değiştirir ve siler. Denedim

orchestrator.Synchronize(); 
+0

. "\\ 10.1.1.102 \\ sharedPath", daha sonra örneği oluşturamıyor. Sadece bana "dosya yolunun bir bölümünü bulamadı" hatasını veriyor. aynı yolla usng run komutuna erişebiliyorum. Sorun ne olabilir??? – Shubhit304

+0

Belki de paylaşılan paylaşımdan önce \\? Emin değilim. –

İlgili konular