2012-03-27 98 views
0

如果文件名包含 - 從skydrive下載失敗。更確切地說 - 結果的長度總是0.其他文件加載沒有任何問題;奇怪的下載錯誤(wp7 + skydrive api)

感謝

開始下載:

if (!loading) { 
       if (!Storage.Exists(item.Name) 
        || MessageBox.Show(AppResources.alreadyExists, AppResources.confirmation, MessageBoxButton.OKCancel) == MessageBoxResult.OK) { 
        loading = true; 
        App.loadInfo.Name = item.Name; 
        App.loadInfo.Info = AppResources.loadingStart; 
        PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disa bled; 
        client.DownloadAsync(item.Id + CONTENT, item); 
       } 
      } 

下載完成:

void client_DownloadCompleted(object sender, LiveDownloadCompletedEventArgs e) { 
     PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Enabled; 
     try { 
      FileItem item = e.UserState as FileItem; 
      if (e.Error == null 
       && !e.Cancelled 
       && e.UserState != null 
       && item.Size == e.Result.Length.ToString()) //LENGTH = 0 { Storage.SaveFile(item.Name, e.Result); 
       App.loadInfo.Info = AppResources.loadingComplete; 
       new GetIcon(item._name); 
      } 
      else { 
       if (item != null) App.loadInfo.Name = item.Name; 
       App.loadInfo.Info = AppResources.loadingError; 
      } 
     } 
     finally { App.loadInfo.Progress = 0; loading = false; MakeUi(); } 
    } 

LiveDownloadProgressChangedEventArgs不會出現

+1

請發表您的解決方案作爲一個答案,而不是作爲一個編輯的問題。 – ChrisF 2012-03-31 11:30:21

回答

0

如果這是真的的話,你能不能只剝去在發出請求之前來自URI的片段?

+0

請求uri不要直接使用文件名。爲示例_client.DownloadAsync(file.e7982fae8124d253.E7982GFE8124D253!146 /內容); _但我注意到,在這種情況下,服務器上的文件名包含#ps。對不起我的英語不好 – pbd 2012-03-28 18:08:00