2017-04-03 77 views
0

驅動器API的文件夾內的文件:https://developers.google.com/drive/v2/reference/files/list搜索使用驅動API

我試圖讓電子表格我的ID,但Logger.log()返回多個ID的只是一個替代。我認爲它是從谷歌驅動器的最近部分獲取具有相同名稱的文件。

我不知道如何解決這一點,任何幫助,將不勝感激。

有沒有辦法只搜索使用驅動API的文件夾裏面的文件?或者,我將如何排除最近一節中的文件,並只搜索驅動器中的文件?

代碼片段:

//get spreadsheet 
    var nameId; 

    var allFiles = Drive.Files.list({ 
    q: "title='" + name + "' and trashed=false" 
    }).items; 

    for (var i = 0; i < allFiles.length; i++) 
    { 
    if (allFiles[i].title == name) 
    { 
     Logger.log("true"); 
     nameId = allFiles[i].id; 
     Logger.log("returnTemplatedTable -- name id: " + nameId); 
    } 
    else 
    { 
     Logger.log("false"); 
    } 
    } 

    var spreadsheet = SpreadsheetApp.openById(nameId).getActiveSheet(); 

這是代碼段的我有一個文件移動到文件夾:

//move spreadsheet to folder 
    Drive.Files.update({ 
    "parents": [ 
     { 
     "id": folderId 
     } 
    ] 
    }, fileId); 

但我怎麼能搜索的文件夾呢?

 


 

var list = Drive.Files.list({ 
    "folderId": folderId, 
    q: "title='" + name + "' and trashed=false" 
    }).items; 

    for (var i = 0; i < list.length; i++) 
    { 
    Logger.log("id: " + list[i].id); 
    } 
+0

您是否嘗試過這樣的:https://developers.google.com/apps-script/reference/drive/drive-app#getFoldersByName(String) –

+0

與此結合:https://developers.google.com/apps-script/reference/drive/folder#searchFiles(String) –

回答

0

它使用驅動API來查找文件夾中的所有文件的名稱。

function findFilesInFolder() { 
    var folderId = 'folderId' 
    //searches for children of a folder 
    var childrenData = Drive.Children.list(folderId) 
    var children = childrenData.items; 

    //loops through the children and gets the name of each one 
    for (var i = 0; i < children.length; i++){ 
     var id = children[i].id; 
     var file = Drive.Files.get(id); 
     Logger.log(file.title) 
    } 
    } 
+0

謝謝,但我正在尋找這樣的先進的驅動器服務驅動器api v2。 – qwiqwiqwiqwiqwi

+0

看着文檔,似乎有json有效載荷中的文件的父屬性。你有沒有嘗試過將該文件夾與id進行比較? – Hink

+0

是的,我編輯了與我剛剛嘗試的另一個代碼片段的帖子。它仍然返回多個ID。 – qwiqwiqwiqwiqwi

0

這裏有一個更簡單的方法,使用searchFiles(params)

獲取用戶的驅動器相匹配 給定的搜索條件的所有文件的集合。搜索條件詳細介紹了Google的 Drive SDK文檔。需要注意的是把params參數是一個查詢 字符串可能包含字符串值,所以要注意正確逃生 引號(例如,「標題包含「格列佛\的 遊記」或「標題包含「格列佛\」遊記「')。

這裏有一個片段我想:

function searchForeFile(){ 

    var files = DriveApp.searchFiles(
     'modifiedDate > "2013-02-28" and title contains "Gene Simmons"'); 
    while (files.hasNext()) { 
    var file = files.next(); 
    Logger.log(file.getName()); 
    } 
} 

果然回來我一直在尋找的文件:

[17-04-03 21:43:26:736 PDT]吉恩·西蒙斯KISS.pdf