2

다음 시나리오에서 Microsoft 동기화 프레임 워크를 사용할 수 있는지 궁금합니다.동기화시 파일을 동기화하는 파일 동기화

로컬 폴더 (하위 폴더 있음)에 고해상도 이미지가 있고 다른 이미지에 저해상도 이미지가 있습니다. 두 폴더를 모두 동기화하려고합니다. 요점은 하위 폴더의 구조와 파일은 높이가 동일한 구조 여야하지만 이미지는 저해상도이어야한다는 것입니다. 분명히 이미지는 동일하지 않으므로 동기화 프레임 워크가이를 처리 할 수 ​​없다고 생각합니다.

프레임 워크에서 동기화 시간에 수정하는 파일을 동기화 할 수 있다면 완벽 할 것입니다. 이것은 굉장 할 것입니다, 그러나 이것이 프레임 워크가 처리 할 수있는 것 이상의 것 같아요, 나는 일종의 반자동 동기화를 생각하고있었습니다. 프레임 워크가 변경 사항을 감지하고, 변경 사항을 읽고,이 변경 사항에 따라 파일 생성/삭제 작업을 수행하게하십시오.

이것이 가능합니까? 거기에 다른 방법이 있습니까?

감사

답변

1

동기화 프레임 워크의 파일 동기화 공급자가 실제 동기화를 수행하지 않고 변화를 감지 할 수있는 미리보기 모드가 있습니다 ... 당신이 다음 변경을 통해 루프와는 다른 처리를 할 수있는 ...

+0

그럴 것입니다. 그러나 다음을 상상해보십시오. 미리보기 모드에서 고해상도 폴더의 변경 내용을 쿼리합니다. 그런 다음 제공된 정보에 따라 본인의 변경 사항을 적용합니다 (1,2,3). 모든 것이 잘 작동했습니다. 그런 다음 고해상도 폴더에서 다른 변경 사항 (4,5)을 수행하고 변경 사항을 다시 쿼리합니다. 프레임 워크가 새로운 변경 사항 (4,5)을보고하거나 모든 변경 사항 (1,2,3,4,5)을보고합니까? 프레임 워크와 동기화하지 않으면 모든 변경 사항을 다시보고합니다. 내가 맞습니까? 내가 있다면, 어떻게 처리 할 수 ​​있니? – nachovall

+0

실제로 적용하지 않고 변경 내용을 수락 할 수 있다고 생각합니다. – JuneT

+0

ApplyingChange 이벤트를 구독 한 다음 SkipChange 속성을 설정하여 건너 뛰도록 건너 뜁니다. – JuneT

1

나는 비슷한 문제에 작업을 입수했습니다 가장 가까운는 다음과 같습니다 :

  • 가 '가짜 동기'에 폴더를 설정; (미리보기 모드가 아닌 실제 동기화) 해당 폴더로 전체 동기화를 수행하십시오.

  • 위조 된 폴더의 공급자로 SyncOrchestrator LocalProvider를 설정하고 제공자를 ExplicitDetectChanges로 설정하십시오.

  • 의도적으로 가짜 공급자에 대해 DetectChanges()를 호출하지 마십시오. 우리는 가짜 폴더에서 어떤 일이 발생했는지 정말로 알고 싶지 않습니다.

  • 동기화 (SyncDirectionOrder.Download)를 수행하고 OnApplyingChange에서 변경된 파일의 이름을 잡습니다. 그러면 모든 파일이 가짜 폴더에 보내지고 메타 데이터가 업데이트됩니다.

  • 메타 데이터 파일을 제외한 모든 가짜 폴더의 파일을 삭제하십시오.

다음에 동기화 할 때 가짜 폴더의 메타 데이터 파일은 변경 사항을 유지해야하므로 변경된 파일 만 표시해야합니다. 나는 나의 시나리오가 당신과 조금 다르다고 생각하지만, 어쨌든 도움이 되었기를 바랍니다.

+1

좋은 접근! 불행히도 저는 이미 문제에 직면 해있는 방식을 바꾸어 놓았습니다. 어쨌든 고마워. – nachovall

+1

걱정하지 않으셔도됩니다. 앞으로 다른 사람을 도울 것입니다. – HaemEternal

관련 문제