0

有沒有人對我如何從共享文件中刪除文件有任何建議?我需要這樣做,而不需要實際取消訪問權限,因爲人員是通過聯繫人組添加的,因此只能刪除1個人將無法工作。Google Apps腳本/驅動器API(Javascript)從我共享的文件夾中刪除

注意事項:

我知道用這個可以找到該文件:

var files = DriveApp.searchFiles('sharedWithMe'); 
//then I set file = what I'm looking for. 

然而,這並不會刪除該文件從與我分享:

DriveApp.removeFile(file); 

我我也試圖通過修補元數據來蠻力,除了無濟於事。 此外,假設與我共享的文件夾是錯誤的,因爲列出父文件夾時文件不會返回任何內容。

回答

0

只有DriveApp無法完全刪除文件。所以有必要使用Drive API。 「removeFile()」用於更改父文件夾信息。它不能刪除文件。我準備了兩個樣本來刪除文件。如果您是該文件的所有者,則可以將其刪除。

移動文件到垃圾箱並清空垃圾桶:

var file = DriveApp.getFilesByName("filename").next(); 
file.setTrashed(true) 
Drive.Files.emptyTrash(); 

刪除文件直接:

Drive.Files.remove("fileID"); 

據證實,上面的腳本可以即使其他用戶正在使用刪除文件。

對於使用上面的腳本,有必要使Drive API at Advanced Google Services和在https://console.developers.google.com/ Developers Console項目驅動API。

文件沒有父文件夾:

如果你曾用「removeFile()」,沒有父文件夾的文件可能會在您的驅動器是現有的。您可以按照腳本進行確認。這可以檢索沒有父文件夾的文件的文件名和文件ID。

var result = []; 
var files = DriveApp.getFiles(); 
while (files.hasNext()) { 
    file = files.next(); 
    if (!file.getParents().hasNext()) { 
    result.push([file, file.getId()]); 
    } 
} 
Logger.log(result); 
+0

我不是文件的所有者 - 所以使用Drive.Files.remove()將其刪除是不可能的。我正在尋找從谷歌驅動器中與我共享的部分中刪除文件,類似於自動執行右鍵單擊該文件並點擊刪除的功能。我啓用了這些APIS。 –

+0

如果您不是文件的所有者,儘管您無法完全刪除它,但可以使用此功能將文件從您的雲端硬盤隱藏。 ''var file = DriveApp.getFilesByName(「filename」)。next(); var folder = file.getParents()。next(); folder.removeFile(file);''在這種情況下,您可以在我的答案中使用「無父文件夾的文件:」腳本進行確認。 – Tanaike

+0

錯誤:無法檢索下一個對象:迭代器已到達結尾。我認爲與我分享實際上並不是父母。 –

相關問題