0

我有一個FileSyncProvider和我寫的FullEnumerationSimpleSyncProvider的自定義實現。當文件從FullEnumerationSimpleSyncProvider同步到FileSyncProvider它們被正確創建,但是都是零字節。定製SimpleSyncProvider創建零個字節文件

當在另一個方向同步(FileSyncProvider作爲源)時,一切都按預期工作。

這是我的IFileDataRetriever的實現。我已經在FileStream屬性設置器和獲取器和大小屬性的放置斷點永遠是正確的,從不爲零。實際本身是一個MemoryStream,這可能會導致任何問題?

public class FileDataRetriever : IFileDataRetriever 
{ 

    private System.IO.Stream fileStream; 

    public string AbsoluteSourceFilePath 
    { 
     get 
     { 
      throw new NotImplementedException("AbsoluteSourceFilePath is not supported for this implementation of IFileDataRetriever"); 
     } 
    } 

    public FileData FileData { get; set; } 

    public System.IO.Stream FileStream 
    { 
     get 
     { 
      return this.fileStream; 
     } 
     set 
     { 
      this.fileStream = value; 
     } 
    } 

    public string RelativeDirectoryPath { get; set; } 
} 

更新:

如果作爲一個實驗,我修改爲下面的代碼,創建5個字節的文件:

public System.IO.Stream FileStream 
    { 
     get 
     { 
      return new MemoryStream(new byte[] { 1, 2, 3, 4, 5 }); 
     } 
     set 
     { 
      this.fileStream = value; 
     } 
    } 

所以這告訴我,它應該工作用MemoryStream很好。如果我在getter上放置了一個斷點,它在調用它時總是看起來有效 - 它具有正確的大小等,而不是0的大小。

回答

0

我懂了!我所需要做的就是將流的位置重置爲0.它位於流的末尾,因此寫入0個字節。