2017-10-17 199 views
1

我試圖使用C#從sharepoint文檔庫下載文檔。OpenBinaryDirect()運行時的exeption:寫入開始後無法設置此屬性

現在在openBinaryDirect()方法上獲得一個異常「此屬性無法在寫入啓動後設置」。

「‘System.InvalidOperationException’類型的未處理的異常出現在System.dll中

附加信息:此屬性不能寫作開始後進行設置。」

請幫我解決這個問題。有沒有其他方法可以從sharepoint(csom)下載文檔。

ClientContext ctx; 
ctx = new ClientContext("url"); 


string pass = "pass"; 
SecureString secureString = new SecureString(); 

foreach (char c in pass.ToCharArray()) 
{ 
    secureString.AppendChar(c); 
} 
ctx.Credentials = new SharePointOnlineCredentials(".onmicrosoft.com",secureString); 

FileCollection files = ctx.Web.GetFolderByServerRelativeUrl("Salary document Demo").Files; 

ctx.Load(files); 
ctx.ExecuteQuery(); 

foreach (Microsoft.SharePoint.Client.File file in files) 
{ 

    FileInformation fileInfo = Microsoft.SharePoint.Client.File.OpenBinaryDirect(ctx, file.ServerRelativeUrl); 

    ctx.ExecuteQuery(); 

    var filePath = @"c:\downloads" + file.Name; 
    using (var fileStream = new System.IO.FileStream(filePath, System.IO.FileMode.Create)) 
    { 
     fileInfo.Stream.CopyTo(fileStream); 
    } 
} 
+0

它,因爲你重用循環內的FileInfo對象。 –

+0

所以我可以做別的。有什麼建議麼 ? –

+0

你可以調試,並找出這到底是什麼? filepath變量中的值又是什麼? –

回答