將檔案和資料夾移至垃圾桶或刪除

您可以同時移除「我的雲端硬碟」和共用雲端硬碟中的 Google 雲端硬碟檔案和資料夾。有兩種方式可選:移至垃圾桶或刪除

您可以將檔案和資料夾移至垃圾桶,然後在 30 天內還原。刪除檔案和資料夾會從雲端硬碟中永久移除。如果一次移至垃圾桶、還原或永久刪除多個檔案或資料夾,可能需要一段時間才能看到變更。

本指南將說明如何在雲端硬碟中處理檔案。

垃圾藝術

如要移除雲端硬碟檔案,可以將這些檔案移至垃圾桶。垃圾桶中的檔案會在保留 30 天後自動刪除,在這 30 天內,您可以還原垃圾桶中的檔案。

只有檔案擁有者可以將檔案移至垃圾桶,其他使用者無法查看擁有者垃圾桶中的檔案。如果您嘗試將非您擁有的檔案移至垃圾桶,會收到 insufficientFilePermissions 錯誤。詳情請參閱「權限」一文。

如要驗證你是檔案擁有者,請呼叫 files.get 方法,並將 fileIdfields 參數設為布林值 ownedByMe 欄位。系統不會為共用雲端硬碟中的檔案填入 ownedByMe 欄位,因為這些檔案是由共用雲端硬碟擁有,而非個別使用者。如要進一步瞭解如何使用 fields 參數傳回欄位,請參閱「傳回檔案的特定欄位」。

如果您不是檔案擁有者,但仍想保留已移至垃圾桶的檔案副本,請執行下列其中一項操作:

  • 建立檔案副本。
  • 請與擁有者聯絡,請對方從垃圾桶中還原檔案。

將檔案移至垃圾桶

如要將檔案移至垃圾桶,請使用 files.update 方法,並將 trashed 欄位設為 True。如要將共用雲端硬碟檔案移至垃圾桶,您也必須將 supportsAllDrives 查詢參數設為 True。詳情請參閱「實作共用雲端硬碟支援功能」。

如果成功,回應主體會包含「檔案」資源的執行個體。

以下程式碼範例說明如何使用 fileId 將檔案標示為垃圾桶:

Python

body_value = {'trashed': True}

response = drive_service.files().update(fileId="FILE_ID", body=body_value).execute()

Node.js

const body_value = {
  'trashed': True
};

const response = await drive_service.files.update({
      fileId: 'FILE_ID',
      requestBody: body_value,
    });
    return response;

FILE_ID 替換為要移至垃圾桶的檔案 fileId

判斷移至垃圾桶的檔案屬性

檔案移至垃圾桶時,可以擷取其他 files 屬性。您可以使用 files.get 方法,並在 fields 參數中加入下列欄位。詳情請參閱「傳回檔案的特定欄位」。

系統會為所有檔案填入下列欄位:

  • trashed:檔案是否移至垃圾桶 (明確或從移至垃圾桶的上層資料夾)。請注意,將 trashedfiles.update 方法搭配使用時,系統會設定檔案狀態,files.get 方法會擷取檔案的狀態。
  • explicitlyTrashed:指出檔案是否從上層資料夾明確移至垃圾桶,而非以遞迴方式移至垃圾桶。

只有位於共用雲端硬碟中的檔案才會填入下列欄位:

  • trashedTime:項目移至垃圾桶的時間,採用 RFC 3339 日期時間格式。如果您使用的是舊版 Drive API v2,這個欄位稱為 trashedDate
  • trashingUser:如果檔案遭到明確移至垃圾桶,表示將檔案移至垃圾桶的使用者。

復原垃圾桶中的檔案

如要從垃圾桶中復原檔案,請使用 files.update 方法,並將 trashed 欄位設為 False。如要移出共用雲端硬碟檔案,您也必須將 supportsAllDrives 查詢參數設為 True。詳情請參閱「實作共用雲端硬碟支援功能」。

如果成功,回應主體會包含「檔案」資源的執行個體。

以下程式碼範例說明如何使用 fileId 將檔案標示為未移至垃圾桶:

Python

body_value = {'trashed': False}

response = drive_service.files().update(fileId="FILE_ID", body=body_value).execute()

Node.js

const body_value = {
  'trashed': False
};

const response = await drive_service.files.update({
      fileId: 'FILE_ID',
      requestBody: body_value,
    });
    return response;

FILE_ID 替換為要移出檔案的 fileId

清空垃圾桶

您可以使用 files.emptyTrash 方法永久刪除使用者移至垃圾桶的所有雲端硬碟檔案。如要清空共用雲端硬碟的垃圾桶,您也必須將 driveId 查詢參數設為共用雲端硬碟 ID。

如果成功,回應主體會包含空白的執行個體。

以下程式碼範例說明如何使用 fileId 刪除垃圾桶中的所有檔案:

Python

response = drive_service.files().emptyTrash().execute()

Node.js

 const response = await drive_service.files.emptyTrash({
    });
    return response;

刪除

您可以直接永久刪除雲端硬碟檔案,無需將檔案移至垃圾桶。刪除檔案後,任何與您共用該檔案的使用者都會失去該檔案的存取權。如要讓其他人繼續存取檔案,可以在刪除前轉移擁有權給其他人。

如要刪除共用雲端硬碟檔案,使用者的上層資料夾必須具備 role=organizer 權限。如果您刪除資料夾,則使用者擁有的所有子係也會一併刪除。詳情請參閱「權限」一文。

如要永久刪除使用者擁有的檔案,而不將其移至垃圾桶,請使用 files.delete 方法。如要刪除共用雲端硬碟檔案,您也必須將 supportsAllDrives 查詢參數設為 True。詳情請參閱「實作共用雲端硬碟支援功能」。

如果成功,回應主體會包含空白的執行個體。

以下程式碼範例說明如何使用 fileId 刪除檔案:

Python

response = drive_service.files().delete(fileId="FILE_ID").execute()

Node.js

 const response = await drive_service.files.delete({
      fileId: 'FILE_ID'
    });
    return response;

FILE_ID 替換為要刪除的檔案的 fileId

權限

下表顯示執行每項作業所需的角色權限。如需角色和每個項目所允許作業的完整清單,請參閱角色和權限

允許的作業 owner organizer fileOrganizer writer commenter reader
將檔案和資料夾移至垃圾桶
復原垃圾桶中的檔案和資料夾
清空垃圾桶
永久刪除檔案或資料夾
刪除共用雲端硬碟中的檔案和資料夾 [*]

功能

files 資源包含一組布林值 capabilities 欄位,用來表示能否對檔案執行動作。

如要檢查功能,請使用 fileId 和設為 capabilities 欄位的 fields 參數呼叫 files.get 方法。如要進一步瞭解如何使用 fields 參數傳回欄位,請參閱「傳回檔案的特定欄位」。

系統會為所有檔案填入下列欄位:

  • capabilities.canTrash:目前使用者能否將這個檔案移至垃圾桶。
  • capabilities.canUntrash:目前使用者能否從垃圾桶還原這個檔案。
  • capabilities.canDelete:目前的使用者能否刪除這個檔案。
  • capabilities.canRemoveChildren:目前使用者能否從這個資料夾移除子項。如果項目並非資料夾,則傳回 false。

只有位於共用雲端硬碟中的檔案才會填入下列欄位:

  • capabilities.canTrashChildren:目前使用者是否可以將這個資料夾的子項移至垃圾桶。如果項目並非資料夾,則傳回 false。
  • capabilities.canDeleteChildren:目前使用者能否刪除這個資料夾的子項。如果項目並非資料夾,則傳回 false。