2011-09-07 3 views
0

Microsoft 동기화 프레임 워크를 사용하여 간단한 동기화 도구 서비스를 작성하려고합니다. 두 위치를 동기화 할 수 있지만 log4net을 사용하여 동기화되는 파일을 출력 할 수 있기를 원합니다. 아무도 내가 이것을 어떻게 할 수 있는지 안다? 여기에 제가 사용하는 코드가 있습니다 :vb.net Sync Framework 2.1 로깅을 위해 파일 이름을 동기화하십시오.

  Try 

      Using _sourceProvider As FileSyncProvider = New FileSyncProvider(_sourceId.GetGuidId, _sourceDir) 

       Using _destinationProvider As FileSyncProvider = New FileSyncProvider(_destId.GetGuidId, _destDir) 

        Dim _syncAgent As SyncOrchestrator = New SyncOrchestrator() 

        _syncAgent.LocalProvider = _sourceProvider 
        _syncAgent.RemoteProvider = _destinationProvider 
        _syncAgent.Direction = SyncDirectionOrder.Upload 
        _syncAgent.Synchronize() 

       End Using 

      End Using 

     Catch ex As Exception 
      Logger.WriteLog(ElogLevel.INFO, "" & ex.Message & "") 
     End Try 

미리 감사드립니다.


덕분에 도움을, 나는 ApplyChange 이벤트 핸들러를 구현했습니다,하지만 난 이벤트 핸들러 코드를 사용할 때 나는 다음과 같은 오류가 발생합니다 :

_sourceProvider.ApplyingChange + = (ApplyingChangeEventArgs의) 새로운 이벤트 핸들러 (fileSyncProvider_ApplyingChange)
는 _destinationProvider.ApplyingChange + = ApplyingChangeEventArgs의 새로운 핸들러() (fileSyncProvider_ApplyingChange는)

는 는

'공개 EventApplyingChange (개체로 보낸 사람, Microsoft.Syncronization.Files.ApplyingChangeEventArgs으로 e)는'이벤트입니다 , 직접 호출 할 수 없습니다. 'RaiseEvent'문을 사용하여 이벤트를 발생시킵니다.

+0

고정 내 코드 :

Public Event ApplyingChange As EventHandler(Of ApplyingChangeEventArgs) Dim handler As EventHandler(Of ApplyingChangeEventArgs) AddHandler _sourceProvider.ApplyingChange, handler AddHandler _destinationProvider.ApplyingChange, handler 

ApplyingChange 이벤트 핸들러를 구현합니다. 죄송합니다. –

답변

0

FileSyncProviderApplyingChange 이벤트를 활용할 수 있습니다.

설정 :

Private Sub fileSyncProvider_ApplyingChange(sender As Object, e As ApplyingChangeEventArgs) 
    Logger.WriteLog(ElogLevel.INFO, "FileSyncProvider > Applying Change") 
    Logger.WriteLog(ElogLevel.INFO, String.Format(vbLf & vbTab & "Change type: {0}", e.ChangeType)) 

    If e.CurrentFileData IsNot Nothing Then 
     Logger.WriteLog(ElogLevel.INFO, "Current Data:") 
     Logger.WriteLog(ElogLevel.INFO, String.Format(vbLf & vbTab & vbTab & "{0} Name: {1}", If(e.CurrentFileData.IsDirectory, "Folder", "File"), e.CurrentFileData.Name)) 
     Logger.WriteLog(ElogLevel.INFO, String.Format(vbLf & vbTab & vbTab & "Relative Path: {0}", e.CurrentFileData.RelativePath.ToString())) 
     Logger.WriteLog(ElogLevel.INFO, String.Format(vbLf & vbTab & vbTab & "Creation Time: {0}", e.CurrentFileData.CreationTime.ToString())) 
     Logger.WriteLog(ElogLevel.INFO, String.Format(vbLf & vbTab & vbTab & "Last Write Time: {0}", e.CurrentFileData.LastWriteTime.ToString())) 
     Logger.WriteLog(ElogLevel.INFO, String.Format(vbLf & vbTab & vbTab & "Last Access Time: {0}", e.CurrentFileData.LastAccessTime.ToString())) 
     Logger.WriteLog(ElogLevel.INFO, String.Format(vbLf & vbTab & vbTab & "Size: {0}", e.CurrentFileData.Size.ToString())) 
     Logger.WriteLog(ElogLevel.INFO, String.Format(vbLf & vbTab & vbTab & "Attributes: {0}", e.CurrentFileData.Attributes.ToString())) 
    End If 

    If e.NewFileData IsNot Nothing Then 
     Logger.WriteLog(ElogLevel.INFO, "New Data:") 
     Logger.WriteLog(ElogLevel.INFO, String.Format(vbLf & vbTab & vbTab & "{0} Name: {1}", If(e.NewFileData.IsDirectory, "Folder", "File"), e.NewFileData.Name)) 
     Logger.WriteLog(ElogLevel.INFO, String.Format(vbLf & vbTab & vbTab & "Relative Path: {0}", e.NewFileData.RelativePath.ToString())) 
     Logger.WriteLog(ElogLevel.INFO, String.Format(vbLf & vbTab & vbTab & "Creation Time: {0}", e.NewFileData.CreationTime.ToString())) 
     Logger.WriteLog(ElogLevel.INFO, String.Format(vbLf & vbTab & vbTab & "Last Write Time: {0}", e.NewFileData.LastWriteTime.ToString())) 
     Logger.WriteLog(ElogLevel.INFO, String.Format(vbLf & vbTab & vbTab & "Last Access Time: {0}", e.NewFileData.LastAccessTime.ToString())) 
     Logger.WriteLog(ElogLevel.INFO, String.Format(vbLf & vbTab & vbTab & "Size: {0}", e.NewFileData.Size.ToString())) 
     Logger.WriteLog(ElogLevel.INFO, String.Format(vbLf & vbTab & vbTab & "Attributes: {0}", e.NewFileData.Attributes.ToString())) 
    End If 
End Sub 
관련 문제