前言:Google 帳戶儲存空間為何快速爆滿?
Google 帳戶免費提供 15 GB 的儲存空間,由 Gmail、Google 雲端硬碟(Drive)與 Google 相簿共用。許多用戶在不知情的狀況下,手機自動備份、他人分享的檔案、年積月累的舊郵件,都會在無聲無息間消耗你的容量。本文將整理三大 Google 服務的批量刪除方法,並附上實測可用的 Apps Script 腳本。
一、大量刪除 Google 雲端硬碟舊檔案
方法一:使用搜尋列手動篩選刪除
- 前往 drive.google.com
- 在搜尋列輸入日期條件,例如
before:2026/06/19(7 天前) - 按 Ctrl + A(Mac 為 Cmd + A)全選,或點擊左上角的勾選框
- 右鍵 → 移至垃圾桶
⚠️ 注意:Google Drive 介面一次只載入 50–100 個檔案,若檔案數量龐大,需要反覆向下捲動再選取,效率很低,建議改用腳本。
方法二:Google Apps Script 自動批量刪除(推薦)
前往 script.google.com,建立新專案,貼入以下程式碼:
function deleteOldFiles() {
var daysAgo = 7; // 可自行調整天數
var date = new Date();
date.setDate(date.getDate() - daysAgo);
var query = "createdDate < '" + Utilities.formatDate(date, Session.getScriptTimeZone(), "yyyy-MM-dd") + "'";
var files = DriveApp.searchFiles(query);
var count = 0;
while (files.hasNext()) {
files.next().setTrashed(true);
count++;
}
console.log('Total files moved to trash: ' + count);
}
常見錯誤排除:
- Invalid argument: q:Drive 搜尋不支援 ISO 日期格式,請使用
yyyy-MM-dd格式,並用單引號包住日期字串。 - Access denied: DriveApp:需重新授權。點選「執行」後選擇「審查權限」→「允許」Drive 存取。若問題持續,進入專案設定,手動在
appsscript.json加入 OAuth 範圍:
{
"oauthScopes": [
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/drive.file"
]
}
Drive 搜尋語法速查表
| 需求 | 搜尋語法 |
|---|---|
| 建立日期早於某日 | createdDate < '2026-06-19' |
| 修改日期早於某日 | modifiedDate < '2026-06-19' |
| 特定資料夾內 | 'FOLDER_ID' in parents |
| 特定檔案類型 | mimeType = 'application/pdf' |
| 名稱包含關鍵字 | title contains 'Report' |
二、刪除 Google Drive 中的空資料夾
為什麼要清理空資料夾?
長期使用 Drive 後,大量移動或刪除檔案會留下空殼資料夾,不僅視覺雜亂,也增加管理成本。實測案例中,1,506 個資料夾裡有 642 個是空的,比例高達 42%。
步驟一:啟用進階 Drive API
- 在 Apps Script 專案左側點擊「服務」旁的 +
- 選擇 Google Drive API → 新增
步驟二:預覽將刪除的空資料夾(建議先執行)
function previewEmptyFolders() {
var startTime = new Date();
var emptyFolders = [];
var checkedCount = 0;
var pageToken = null;
do {
var response = Drive.Files.list({
q: "mimeType = 'application/vnd.google-apps.folder' and trashed = false",
pageSize: 1000,
pageToken: pageToken,
fields: "nextPageToken, files(id, name)"
});
var folders = response.files || [];
for (var i = 0; i < folders.length; i++) {
checkedCount++;
var folder = folders[i];
var children = Drive.Files.list({
q: "'" + folder.id + "' in parents and trashed = false",
pageSize: 1,
fields: "files(id)"
});
if (!children.files || children.files.length === 0) {
emptyFolders.push({ name: folder.name, id: folder.id });
}
if (checkedCount % 500 === 0) {
var elapsed = ((new Date() - startTime) / 1000).toFixed(1);
console.log('Checked ' + checkedCount + ' folders... (' + elapsed + 's)');
}
}
pageToken = response.nextPageToken;
} while (pageToken);
console.log('TOTAL CHECKED: ' + checkedCount);
console.log('EMPTY FOLDERS: ' + emptyFolders.length);
for (var i = 0; i < Math.min(emptyFolders.length, 50); i++) {
console.log((i + 1) + '. "' + emptyFolders[i].name + '"');
}
}
步驟三:執行刪除(含權限錯誤保護)
function removeEmptyFolders() {
var startTime = new Date();
var emptyCount = 0;
var skippedCount = 0;
var pageToken = null;
var myEmail = Session.getEffectiveUser().getEmail();
do {
var response = Drive.Files.list({
q: "mimeType = 'application/vnd.google-apps.folder' and trashed = false",
pageSize: 1000,
pageToken: pageToken,
fields: "nextPageToken, files(id, name, owners)"
});
var folders = response.files || [];
for (var i = 0; i < folders.length; i++) {
var folder = folders[i];
// 只刪除自己擁有的資料夾
var isOwner = folder.owners &&
folder.owners.some(function(o) { return o.emailAddress === myEmail; });
if (!isOwner) { skippedCount++; continue; }
var children = Drive.Files.list({
q: "'" + folder.id + "' in parents and trashed = false",
pageSize: 1,
fields: "files(id)"
});
if (!children.files || children.files.length === 0) {
try {
Drive.Files.update({ trashed: true }, folder.id);
emptyCount++;
} catch (e) {
console.log('Skipped "' + folder.name + '": ' + e.message);
skippedCount++;
}
}
}
pageToken = response.nextPageToken;
} while (pageToken);
console.log('Deleted: ' + emptyCount + ' | Skipped (no permission): ' + skippedCount);
}
⚠️ 注意:遇到「insufficient permissions」錯誤,代表該資料夾由他人擁有或為唯讀共享。上方腳本已加入擁有者判斷與 try/catch,會自動略過無法刪除的資料夾。
三、大量刪除 Gmail 舊郵件
方法一:搜尋列 + 全選刪除
- 在搜尋列輸入篩選條件(見下表)
- 點選左上角勾選框(選取當頁約 50 封)
- 點擊藍色連結「選取此搜尋中的所有 X 封郵件」(這步驟非常關鍵!)
- 點擊垃圾桶圖示刪除
Gmail 搜尋語法速查表
| 需求 | 搜尋語法 |
|---|---|
| 7 天前的郵件 | older_than:7d |
| 1 個月前 | older_than:1m |
| 1 年前 | older_than:1y |
| 特定日期前 | before:2026/06/19 |
| 含附件 | has:attachment |
| 大於 10MB | larger:10M |
| 垃圾信件匣 | in:spam |
方法二:Apps Script 批量刪除(處理 500 封以上)
Gmail API 每次最多回傳 500 封,以下腳本會自動循環處理直到清空:
function deleteAllOldEmails() {
var batchSize = 500;
var totalDeleted = 0;
while (true) {
var threads = GmailApp.search('older_than:7d', 0, batchSize);
if (threads.length === 0) break;
for (var i = 0; i < threads.length; i++) {
threads[i].moveToTrash();
}
totalDeleted += threads.length;
console.log('Deleted batch: ' + threads.length + ' | Total so far: ' + totalDeleted);
Utilities.sleep(1000); // 避免觸發速率限制
}
console.log('GRAND TOTAL DELETED: ' + totalDeleted);
}
執行前的小技巧:先手動清空「垃圾郵件」與「已刪除郵件」,可減少腳本需處理的數量。
四、大量刪除 Google 相簿
為什麼相簿會莫名佔用空間?
Google 相簿備份功能預設為開啟狀態,只要安裝了 Google 相簿 App,手機相機膠卷就會自動上傳至雲端,全部計入 15 GB 免費配額。
手動刪除(適合少量)
- 前往 photos.google.com
- 點選第一張相片 → 按住 Shift → 點選最後一張(範圍選取)
- 點擊垃圾桶圖示
⚠️ 注意:Google 相簿沒有真正的「全選」功能,需要向下捲動載入後再分批選取。
關閉自動備份(防止繼續上傳)
- Android / iPhone:開啟 Google 相簿 App → 個人資料 → 相片設定 → 備份 → 關閉「備份與同步」
刪除雲端、保留手機本地照片(正確操作順序)
- 先關閉備份功能(上方步驟)
- 前往 photos.google.com
- 刪除不需要的相片
⚠️ 若未先關閉備份就在手機刪除,照片也會同步從雲端消失。
刪除提示說明
當 Google 相簿顯示「將從您的 Google 帳戶、已開啟備份的裝置及您在 Google 相簿中分享的位置移除」,這代表:
- 從雲端刪除 ✓
- 從已開啟備份的手機/平板刪除 ✓
- 從共享相簿中移除 ✓
- 刪除後相片進入垃圾桶,保留 60 天(與 Gmail 的 30 天不同)
重要注意事項彙整
| 服務 | 垃圾桶保留期 | 注意事項 |
|---|---|---|
| Google Drive | 30 天 | 刪除共享資料夾可能影響他人 |
| Gmail | 30 天 | 1 個 Thread 可能含多封郵件 |
| Google 相簿 | 60 天 | 垃圾桶清空前仍佔用儲存空間 |
確認儲存空間使用狀況
前往 one.google.com/storage,可以看到 Gmail、Drive、相簿各自佔用多少空間,作為清理前後的對比依據。

沒有評論