如果其中不存在文件,则删除文件夹 - 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”的方法检查文件是否在文件夹中。当文件夹中没有文件时,文件夹被删除。
注:
- 在这种情况下,文件夹被删除。所以请注意这一点。我想推荐使用示例文件夹来测试脚本。
参考:
我目前拥有的功能:
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”的方法检查文件是否在文件夹中。当文件夹中没有文件时,文件夹被删除。
注:
- 在这种情况下,文件夹被删除。所以请注意这一点。我想推荐使用示例文件夹来测试脚本。