嗨,我有這個需要覆寫檔案的 Google App 腳本。目前它創建了一個副本。是否有一兩行可以檢查它是否存在,然后洗掉?或者是否有替代 createFile 的替代方法?
DriveApp.getFolderById(fold).createFile(file.getName() '-' sheet '.csv', csv);
非常感謝您的關注!
uj5u.com熱心網友回復:
檔案名在 Google Drive 上不是唯一的 - 檔案的唯一性由它們的 ID 決定。而在常規檔案系統上,創建具有相似檔案名的檔案會洗掉舊檔案,在這種情況下,您每次都會創建一個新的唯一檔案。
據我所知,最簡單的方法是將現有檔案移動到垃圾箱。您可以保留現有腳本但添加到它。假設您的檔案將始終存在,這應該有效:
const folder = DriveApp.getFolderById(fold);
folder.getFilesByName(file.getName() '-' sheet '.csv').next().setTrashed(true);
folder.createFile(file.getName() '-' sheet '.csv', csv);
如果您不確定具有該名稱的檔案是否存在,或者可能有多個具有該名稱的檔案,則必須遍歷所有檔案:
const folder = DriveApp.getFolderById(fold);
const files = folder.getFilesByName(file.getName() '-' sheet '.csv');
while(files.hasNext()){
let f = files.next();
f.setTrashed(true);
}
folder.createFile(file.getName() '-' sheet '.csv', csv);
我還沒有測驗過這段代碼,但它應該非常接近你所需要的。
編輯 與我所說的相反,DriveApp.File.setContent(content )方法可以覆寫檔案的內容。上述解決方案仍然有效并避免了潛在的資料丟失。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/367944.html
標籤:谷歌应用程序脚本
