获取要删除的已创建文件的文件 ID - Google Drive API

我正在尝试使用 google Drive API 获取创建的文件的文件 ID,以便我可以使用它来删除文件。这是代码:


$file = new Google_Service_Drive_DriveFile();

$file->setName($fileName);

$file->setDescription('Volunteer Hours');

$file->setParents(array($folderId));

$data = file_get_contents($filePath);

$createdFile = $this->service->files->create($file, array(

    'data' => $data,

    'uploadType' => 'multipart'

));

有什么.id方法可以让我说:


$createdFileID = $createdFile.id;

我查看了 google Drive api 但找不到任何这样的方法。我想要上传文件的 id 的原因是,如果我想使用该特定 id,我可以删除文件最终,这是我要编写的函数:


// Deletes a specific file from a specific folder

function deleteFile($folderName, $fileID) {


}

这样,如果给定文件夹中碰巧存在同名文件,我们就可以受到保护并删除正确的文件。


浮云间
浏览 87回答 1
1回答

蓝山帝景

我相信你的目标如下。您想要使用 php 的 googleapis 检索 Google Drive 上上传文件的文件 ID。当 的文件名$fileName存在于 的特定文件夹中时$folderName,您想要删除现有文件。问题1的回答:既然如此,下面的修改如何?从:$createdFile = $this->service->files->create($file, array(    'data' => $data,    'uploadType' => 'multipart'));到:$createdFile = $this->service->files->create($file, array(    'data' => $data,    'uploadType' => 'multipart'));$createdFileID = $createdFile->getId();  // Added这样,就可以通过 来检索上传文件的文件 ID $createdFileID。问题2的回答:当您想使用 的文件名和文件夹名称删除文件时function deleteFile($folderName, $fileName) {},下面的示例脚本怎么样?示例脚本:function deleteFile($folderName, $fileName) {    $client = getClient();    $drive = new Google_Service_Drive($client);    $res1 = $drive->files->listFiles(array("q" => "name='{$folderName}' and trashed=false"));    $folderId = $res1->getFiles()[0]->getId();    $res2 = $drive->files->listFiles(array("q" => "name='{$fileName}' and '{$folderId}' in parents and trashed=false"));    if (count($res2->getFiles()) == 0) {        // When the filename of $fileName is not existing,        // do something    } else {        $fileId = $res2->getFiles()[0]->getId();        $drive->files->delete($fileId);    }}在这种情况下,当 的文件名$fileName存在于 的特定文件夹中时$folderName,现有文件将被删除。参考:文件:删除添加:当您想使用文件ID删除文件时,可以使用以下脚本。function deleteFile($fileID) {    $client = getClient();    $drive = new Google_Service_Drive($client);    $drive->files->delete($fileID);}在这种情况下,$folderName不需要使用。因为在 Google Drive 中,所有文件都有唯一的文件 ID。
打开App,查看更多内容
随时随地看视频慕课网APP