This morning I finally got my authors copy of the dot.net Magazin that I wrote an article on Microsoft Sync Framework. It’s in german, 7 pages long and you can buy it tomorrow.
Anyhow, I got an email this morning asking about one of the code listings and asking if there was anything different to do in VB.net. It’s been a while since I last did VB.net (I actually did more VB6 than VB.net) but I converted the sample from the magazine to VB.net. Just remember to reference Microsoft.Synchronization and Microsoft.Synchronization.Files.
(By the way I still haven’t got round to looking at CTP2 of the Sync Framework. All this stuff (and the article) applies to CTP1. Maybe there was a breaking change in CTP2 with regard to the FileSyncProvider. I must get round to looking at CTP2 a.s.a.p.)
Here is the code:
Imports Microsoft.Synchronization
Imports Microsoft.Synchronization.Files
Imports System.IO
Module Module1
Sub Main()
'Define directories
Dim _sourceDir As String = "c:\temp\1"
Dim _destDir As String = "c:\temp\2"
'Define system ids
Dim _sourceId As SyncId = New SyncId(New Guid("A4715EAF-341E-4ebf-90C3-71E8644CA6E8"))
Dim _destId As SyncId = New SyncId(New Guid("FF766014-0DA4-401d-BDA1-0679326ECF96"))
'Exclude some patterns
Dim _syncFilter As FileSyncScopeFilter = New FileSyncScopeFilter()
_syncFilter.AttributeExcludeMask = FileAttributes.Hidden Or FileAttributes.System
_syncFilter.FileNameExcludes.Add("DoNotCopy.txt")
_syncFilter.SubdirectoryExcludes.Add("DoNotCopy")
'Setup options (makes sure files aren't deleted for ever)
Dim _syncOptions As FileSyncOptions = FileSyncOptions.RecycleDeletes Or FileSyncOptions.RecycleOverwrites
'Do the sync
Using _sourceProvider As FileSyncProvider = New FileSyncProvider(_sourceId, _sourceDir, _syncFilter, _syncOptions)
Using _destinationProvider As FileSyncProvider = New FileSyncProvider(_destId, _destDir, _syncFilter, _syncOptions)
Dim _syncAgent As SyncAgent = New SyncAgent()
_syncAgent.LocalProvider = _sourceProvider
_syncAgent.RemoteProvider = _destinationProvider
_syncAgent.Direction = SyncDirection.UploadAndDownload
_syncAgent.Synchronize()
End Using
End Using
End Sub
End Module



