php - how to get folder parent path using google drive API without using recursion?
one text
I am trying to get path from selected folder up to root(My Drive) using parent id.
nested folder :
My Drive ___ Folder1 __ Foder1.1 ____ Folder1.1.1 ____ Folder1.1.1.1(selected folder)
| | \___ Folder1.1.2 \___ Folder1.1.1.2
| |__ Folder1.2
|___ Folder2
Drive API :
https://www.googleapis.com/drive/v3/files/fileId
For now, I'm using recursion to get the path, but this takes quite a while.
my code:
public function getParentFolder($parentId)
{
$result = [];
/** options */
$optParams = [
'fields' => 'id, name, parents'
];
/** GET https://www.googleapis.com/drive/v3/files/fileId */
$response = $this->getFileService($parentId, $optParams);
if ($response->getParents() != "" && in_array($response->getName(), ['My Drive']) === false) {
/** get parent data */
$newParent = $response->getParents();
/** get data */
$result[] = [
'id' => $response->getId(),
'name' => $response->getName(),
];
/** call function again */
$newResult = $this->getParentFolder($newParent[0]);
/** merge data */
$result = array_merge($result, $newResult);
}
return $result;
}
result :
[
{
"id": "Folder1.1.1 Id",
"name": "Folder1.1.1"
},
{
"id": "Folder1.1 Id",
"name": "Folder1.1"
},
{
"id": "Folder1 Id",
"name": "Folder1"
},
{
"id": "My Drive Id",
"name": "My Drive" # This is the root folder.
}
]
is it possible to get the folder path without recursion?
Source