2
我已經有一個搜索,但似乎無法找到我在找什麼。谷歌應用程序腳本文件夾中的文件計數
我尋求的代碼,使我能夠做到這一點的僞代碼:在特定的谷歌雲端硬盤文件夾的文件
- 計數次數(通過文件夾ID)
- 如果文件數超過「X」做到這一點{其他的代碼}
- 否則,退出
誰能幫助我嗎?
我已經有一個搜索,但似乎無法找到我在找什麼。谷歌應用程序腳本文件夾中的文件計數
我尋求的代碼,使我能夠做到這一點的僞代碼:在特定的谷歌雲端硬盤文件夾的文件
誰能幫助我嗎?
我找不到任何方法來給出文件的數量計數,所以我想你會通過每一個文件需要循環,並有一個計數器:
function countFilesInFolder() {
var count,file,files,theFolder;//Define variables without assigning a value
theFolder = DriveApp.getFolderById('your file ID');
files = theFolder.getFiles();
count = 0;
while (files.hasNext()) {
count++;
file = files.next();
//Logger.log(file.getName());
if (count > 5) {
fncNextFunction();
break;
};
};
Logger.log(count);
};
function fncNextFunction() {
Logger.log('fncNextFunction');
};
注:如果我只有計數器增量沒有得到下一個文件,腳本編輯器就會凍結。
下面是使用先進的硬盤服務的另一種方法:
//This requires the Drive API To be turned on in the Advanced Google Services
function countFilesInFolder() {
var query = 'trashed = false and ' +
"'Your Folder ID here' in parents";
var filesInFolder = Drive.Files.list({q: query});
Logger.log('filesInFolder: ' + filesInFolder.items.length);
for (var i=0;i<filesInFolder.items.length;i++) {
//Logger.log('key: ' + key);
var thisItem = filesInFolder.items[i];
Logger.log('value: ' + thisItem.title);
};
};
對於使用頁面標記列出超過100個結果的一個例子,看到The Documentation
我不熟悉的應用程序腳本,以便這可能會脫離基地,但我可能會建議您查看高級雲端硬盤服務。這樣可以提高效率。首先,你可以指定你想要返回哪些文件屬性,這將最大限度地減少需要發送的數據量,這會使事情變得更快。在你的情況下,你並不需要任何屬性,所以(我猜)你會得到一個空對象數組。其次,您可以簡單地將數組數添加到累加器,然後重複每個頁面令牌,因此不需要迭代文件對象。 – pinoyyid
我使用先進的Drive Service爲答案添加了另一種方法。 –
你沒有循環nextpagetoken,所以只能看到最多100個文件 – pinoyyid