2017-05-03 5 views
0

OneDrive SDK를 사용하여 파일을 업로드 할 수 있습니다. OneDrive Dev Center의 정보에 따르면 FileSystemInfo.DateModified은 파일이 로컬로 수정되었을 때보 다 서비스에서 본 시간을 나타냅니다.단일 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) 
    { } 
}