2017-05-03 7 views
0

OneDrive SDKを使用してファイルをアップロードすることはできますが、問題はありません。 OneDrive Dev Centerの情報によれば、​​は、ファイルがローカルで変更されたときではなく、サービスがそのファイルを見た時刻を示します。単一のOneDriveアイテムでDateModifiedプロパティを調整する方法

ローカルの値に手動で変更して、要求に含めるようにしていますが、コードに設定されている値が固まっておらず、PutAsync<Item>要求が完了した時点に戻ります。私は間違って何をしていますか?

マイコード:同じに対する

if (localfile != null) 
       { 
        localprop = await localfile.GetBasicPropertiesAsync(); 
        localtime = localprop.DateModified; 
        try 
        { 
         Stream syncstream = await localfile.OpenStreamForReadAsync(); 
         using (syncstream) 
         { 
          var upload = await _userDrive.Drive.Special.AppRoot.ItemWithPath(filepath).Content.Request().PutAsync<Item>(syncstream); 
          upload.FileSystemInfo.LastModifiedDateTime = localtime; 
         } 
        } 
        catch (OneDriveException) 
        { } 
       } 

マイクエリ:あなたがないかもしれない

oneDItem = await _userDrive.Drive.Special.AppRoot.ItemWithPath(filepath).Request().GetAsync(); 
       var oneDtime = (DateTimeOffset)oneDItem.FileSystemInfo.LastModifiedDateTime; 
+0

upload.FileSystemInfo.LastModifiedDateTime = localtime;このステートメントは、ファイルがアップロードされた後に来るので、このアップデートは決して見られません。 – loneshark99

+0

@ loneshark99、ありがとうございます。ファイルの作成/読み込みの手順にコードを含めるには、コードを変更するにはどうすればよいですか? – Lindsay

答えて

0

あなたuploadつのドライブにファイルが、LastModifiedDateTimeが一緒に要求するためのパラメータがない場合は、変更アップロード時に変更された時刻。ただし、updateリクエストでアイテムのメタデータを更新できます。アップロード後、アップロードしたアイテムを取得し、LastModifiedDateTimeメタデータを更新することができます。コードは次のとおりです。

if (localfile != null) 
{ 
    var localprop = await localfile.GetBasicPropertiesAsync(); 
    var localtime = localprop.DateModified;    
    try 
    { 
     Stream syncstream = await localfile.OpenStreamForReadAsync(); 
     using (syncstream) 
     { 
      DriveItem upload = await _userDrive.Me.Drive.Root.ItemWithPath("regfolder/regdata.jpg").Content.Request().PutAsync<DriveItem>(syncstream); 
      DriveItem updateitem = new DriveItem() { 
        FileSystemInfo=new Microsoft.Graph.FileSystemInfo() 
        { 
         LastModifiedDateTime = localtime 
        } 
      };      
      DriveItem Updated = await _userDrive.Me.Drive.Root.ItemWithPath("regfolder/regdata.jpg").Request().UpdateAsync(updateitem); 
     } 
    } 
    catch (Exception ex) 
    { } 
} 
関連する問題