Google云端硬盘APi-按ID获取文件的路径

时间:2018-07-26 15:14:45

标签: javascript google-drive-api

我正在尝试通过ID来获取文件或文件夹的路径。

我知道父母就像标签一样,但在PC上使用Google云端硬盘却并非如此:它们始终是其分层结构中的文件夹和文件。

所以我尝试以下代码:

function getPath( fileId ) {

    path = ""
    names = [];

    while ( id != '0AN9ZF6qdu2FUUk9PVA' ){ //the right string is the root id

        get_metadata( id )
            .then( function(response){
                    if( response.result.parents )
                        names.push( response.result.name )

                    id = response.result.parents[0];
            })
    }

    path = names.reverse.join('/');

    return path;
}

它不起作用。请帮助我。

1 个答案:

答案 0 :(得分:0)

不起作用的最可能原因是您未能处理JavaScript的异步特性。您的语句将执行类似以下内容:-

get_metadata
get_metadata
get_metadata
get_metadata
get_metadata
get_metadata
get_metadata
get_metadata
names.push
get_metadata
get_metadata
names.push

第二,您的函数参数为fileId,但函数主体中从未使用过它。相反,您使用的是id

值得一看的是How do I search sub-folders and sub-sub-folders in Google Drive?的选项3,这意味着您可以在一个GDrive API调用中完成您想做的事情。

因此,以世界上最好的状态,您需要进行很多JavaScript学习。