我需要從我的驅動器中刪除所有文件,超過16 GB,我需要幾個小時手動刪除。Google Apps腳本從谷歌驅動器中刪除所有文件?
尋求支持谷歌的幫助下,也沒有幫助。
我可以換一個谷歌Apps腳本,我執行?
我需要從我的驅動器中刪除所有文件,超過16 GB,我需要幾個小時手動刪除。Google Apps腳本從谷歌驅動器中刪除所有文件?
尋求支持谷歌的幫助下,也沒有幫助。
我可以換一個谷歌Apps腳本,我執行?
我打算假設您熟悉Google Apps腳本,以瞭解如何在驅動器中創建腳本,管理編輯器等......如果您不是,請從此處開始https://developers.google.com/apps-script/overview。
這裏一個小腳本,將列出所有的文件,並將它們設置到垃圾桶,你仍然需要去垃圾和永久刪除。
時要小心使用該腳本:ALL將文件移動到回收站
您需要取消對file.setTrashed(真)當您運行此
function processAllFiles() {
// we look for the continuation token from the UserProperties
// this is useful as the script may take more that 5 minutes
// (exceed execution time)
var continuationToken = UserProperties.getProperty('DELETE_ALL_FILES_CONTINUATION_TOKEN');
if (continuationToken == null) {
// firt time execution, get all files from drive
var files = DriveApp.getFiles();
// get the token and store it in a user property
var continuationToken = files.getContinuationToken();
UserProperties.setProperty('DELETE_ALL_FILES_CONTINUATION_TOKEN', continuationToken);
} else {
// we continue to execute (and move everything to trash)
var files = DriveApp.continueFileIterator(continuationToken);
}
while (files.hasNext()) {
var file = files.next();
// file.setTrashed(true);
Logger.log(file.getName());
}
// finish processing delete the token
UserProperties.deleteProperty('DELETE_ALL_FILES_CONTINUATION_TOKEN');
}
你可能會潛在地留下了很許多文件夾(如果它們是由於某種原因以編程方式創建的;)),所以你可以運行這個小腳本將它們移動到垃圾箱。不要忘記取消註釋下面的內容。
function processAllFolder() {
// Log the name of every folder in the user's Drive.
var folders = DriveApp.getFolders();
while (folders.hasNext()) {
var folder = folders.next();
Logger.log(folder.getName());
// folder.setTrashed(true);
}
};
讓我知道如何爲你工作。
我非常patt0的(最好的)答案interrested,並試圖通過添加一些功能對我個人的舒適度,以提高它(只是一點點:-) ......
這是我來,只是信息(添加數據記錄保存在單個文件不會被刪除,這樣可以保持發生了什麼事一絲 - 或將要發生什麼,如果你與評論setTrashed()
運行它 - 和發送郵件到你方便訪問的日誌數據doc url)
function processAllFiles() {
var continuationToken = UserProperties.getProperty('DELETE_ALL_FILES_CONTINUATION_TOKEN');
var numberOfFiles = Number(UserProperties.getProperty('Number_of_files_processed'));
var thisScriptFileId = DocsList.find("continuationToken = UserProperties.getProperty('DELETE_ALL_FILES_CONTINUATION_TOKEN')")[0].getId();
Logger.log(thisScriptFileId);
if(UserProperties.getProperty('logFileId') == null){
var logFileId = DocumentApp.create('Delete All Files Log data').getId();
var doc = DocumentApp.openById(logFileId);
doc.getBody().appendParagraph('List of all the files you deleted\n\n');
UserProperties.setProperty('logFileId', logFileId);
}
if (continuationToken == null) {
var files = DriveApp.getFiles();
var continuationToken = files.getContinuationToken();
UserProperties.setProperty('DELETE_ALL_FILES_CONTINUATION_TOKEN', continuationToken);
UserProperties.setProperty('Number_of_files_processed', '0');
} else {
var files = DriveApp.continueFileIterator(continuationToken);
}
while (files.hasNext()) {
var file = files.next();
if(file.getId()!=logFileId&&file.getId()!=thisScriptFileId){
// file.setTrashed(true);
numberOfFiles++
Logger.log('File '+Utilities.formatString("%05d", numberOfFiles)+' : '+file.getName());
}
}
var paragraphStyle = {};
paragraphStyle[DocumentApp.Attribute.FONT_SIZE] = 8 ;
var doc = DocumentApp.openById(UserProperties.getProperty('logFileId'));
doc.getBody().appendParagraph(Logger.getLog()).setAttributes(paragraphStyle);
MailApp.sendEmail(Session.getEffectiveUser().getEmail(),'DeleteFiles result Log','Here is the log data to your script :\n\n'
+doc.getUrl()+'\n\nExecuted by this script : '+DocsList.getFileById(thisScriptFileId).getUrl());
// finish processing delete the token
UserProperties.deleteProperty('DELETE_ALL_FILES_CONTINUATION_TOKEN');
UserProperties.deleteProperty('Number_of_files_processed');
}
好東西與記錄嗶嘰,我加了一個函數來處理我的基本版本中的文件夾... – patt0
精彩的工作人員,在這裏運行了2個腳本並刪除了所有文件。 而且還生成了刪除文件的日誌!非常感謝你。 –
很高興幫助,這是一個有趣的:-) –
Th爲文件夾更新(和用於評論以及:-)(+ 1upvote) –
anks當含有setTrashed線()是未註釋這保持生成服務器錯誤。我懷疑這與刪除腳本文件本身有關,但@Sergeinsas答案也會在該行上生成服務器錯誤。 – jrhorn424
開箱即用(爲我節省了一整天的工作 - 我有50GB的刪除空間)。 – Parzival