2016-09-01 93 views
0

我在使用API​​查找Drive上特定文件夾中的文件。這裏的原因是我的文件可以在多個文件夾中具有相同名稱的副本。這是我編寫的一個sniplet,用於檢查文件是否存在,但生成的查詢是否爲Undifined。任何人有想法?Google Drive API Node.js在特定位置搜索文件

function checkFile(filename, auth, folderId){ 
var service = google.drive('v3'); 
console.log("folderId: " + folderId); 
var objectExists = false; 
var fetchPage = function(pageToken, pageFn, callback) { 
    service.files.list({auth: auth, 
    resource: { parents: [ folderId ] }, 
    q: "mimeType='application/pdf' and trashed=false", 
    fields: 'nextPageToken, files(id, name)', 
    spaces: 'drive', 
    pageToken: pageToken, 
    }, function(err, res) { 
    if(err) { 
     callback(err); 
    } else { 
     console.log(res) 
     if(res.files != undefined){ 
      res.files.forEach(function(file) { 
       if(file.name == filename) 
       { 
       console.log('Found file: ', file.name, file.id); 
       objectExists = true; 
       } 

       }); 
       if (res.nextPageToken) { 
       pageFn(res.nextPageToken, pageFn, callback); 
       } else { 
       callback(); 
       } 
     } 
     else { 
      callback(); 
     } 

    } 
    }); 
}; 
fetchPage(null, fetchPage, function(err) { 
    if (err) { 
    // Handle error 
    console.log(err); 
    } else { 
     if(!objectExists) 
      createFile(filename, auth, folderId) 
    } 
}); 

}

回答

0

通過在字段添加更多數據解決它:

fields: 'nextPageToken, files(id, name),files/parents', 

然後加入額外的校驗值:

if(file.name == filename && file.parents[0] == folderId) 
相關問題