如果其中没有文件,请删除文件夹-Google云端硬盘API 修改后的脚本:注意:参考:

问题描述

我目前具有以下功能:

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

我该如何修改它,以使删除后,如果该文件夹中没有文件,它将删除该文件夹本身。

解决方法

我相信您的目标如下。

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

在这种情况下,您可以使用Drive API中的“文件:列表”方法检查文件是否在文件夹中。

修改后的脚本:

请将文件夹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);后,它将使用“文件:列表”方法检查文件是否在文件夹中。如果文件夹中没有文件,则该文件夹将被删除。

注意:

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

参考:

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...