如果其中不存在文件,则删除文件夹 - Google 驱动器 API

Delete folder if no files exist within it - Google Drive API

我目前拥有的功能:

function deleteFileUsingID($fileID) {
    $this->service->files->delete($fileID);
}

我如何修改它,以便 删除文件后,如果该文件夹中不存在任何文件,它会删除文件夹本身。

我相信你的目标如下。

  • 当特定文件夹中没有文件时,您要删除该文件夹。

这种情况下,可以使用DriveAPI中的“Files:list”的方法查看文件夹中是否有文件。

修改后的脚本:

请将文件夹 ID 设置为 $folderId = '###';

function deleteFileUsingID($fileID) {
    $this->service->files->delete($fileID);

    $folderId = '###';  // Please set the folder ID.
    $fileList = $this->service->files->listFiles(array("q" => "'{$folderId}' in parents"));
    if (count($fileList->getFiles()) == 0) {
        $this->service->files->delete($folderId);
    }
}

或者,当您想要从$fileID中检索文件夹ID时,您也可以使用以下脚本。

function deleteFileUsingID($fileID) {
    $folderIds = $this->service->files->get($fileID, array("fields" => "parents"))->getParents();

    $this->service->files->delete($fileID);

    if (count($folderIds) > 0) {
        $folderId = $folderIds[0];
        $fileList = $this->service->files->listFiles(array("q" => "'{$folderId}' in parents"));
        if (count($fileList->getFiles()) == 0) {
            $this->service->files->delete($folderId);
        }
    }
}
  • 在这个修改后的脚本中,在$this->service->files->delete($fileID); 为运行 之后,它使用“Files: list”的方法检查文件是否在文件夹中。当文件夹中没有文件时,文件夹被删除。

注:

  • 在这种情况下,文件夹被删除。所以请注意这一点。我想推荐使用示例文件夹来测试脚本。

参考: