2016-09-01 7 views
0

私は、APIを使用してドライブ上の特定のフォルダ内のファイルを検索しようとしています。その理由は、私のファイルは複数のフォルダに同じ名前のコピーを持つことができるからです。これは、ファイルが存在するかどうかをチェックするために書いたもののスニペットですが、結果のクエリはUndifinedです。誰でもアイデアがありますか?Googleドライブ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

フィールドでより多くのデータを追加することによってそれを解決:

if(file.name == filename && file.parents[0] == folderId) 
:余分なチェック値を加算することによって続い

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

関連する問題