我有一个包含近 2000 行 URL 的 Google 电子表格文件,例如:
https://docs.google.com/uc?id=0B4ptELk-D3USblk1aWd1OWowRWs
每个 URL 都包含一张图片,存储在 Google 云端硬盘中。我的问题是:如何将此链接 (https://docs.google.com/uc?id=0B4ptELk-D3USblk1aWd1OWowRWs
) 转换为文件名?例如,我想知道它是否可以是 /something/folder/Photofile1.jpg
。
有什么办法吗?
最佳答案
尝试脚本:
function TESTgetFileName() {
Logger.log(getFileName('0B4ptELk-D3USVi1NZ3ZGbkhqYXc'));
// ^^^^^^^^^^ file ID ^^^^^^^^^
}
function getFileName(id) {
var file = DriveApp.getFileById(id);
var fileName = file.getName();
var strFolders = getFolders(file);
return strFolders + '/' + fileName;
}
function getFolders(object) {
var folders = object.getParents();
if (!folders.hasNext()) { return 'My Drive'; }
var folder = folders.next();
var folderNames = [];
while (folder.getParents().hasNext()) {
var folderName = folder.getName();
folderNames.unshift(folderName);
folder = folder.getParents().next();
}
return folderNames.join('/');
}
脚本函数将返回结果:
0B4ptELk-D3USVi1NZ3ZGbkhqYXc → 我的驱动器/something/folder/Photofile1.jpg
测试
我打开脚本编辑器,选择函数 TESTgetFileName
并得到结果
我的驱动器/Detalhes_Farmacia.Fotografia_Fachada_1.JPEG
。
此函数可以从脚本运行,而不是直接从电子表格运行。当您尝试将其用作工作表中的自定义公式时,它会抛出错误:
You do not have permission to call getFileById (line 8).
所以最好从脚本中使用它来获取数据,然后将结果写入工作表。
关于google-apps-script - 如何将链接转换为文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42527328/