嘗試腳本:
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 → My Drive/something/folder/Photofile1.jpg
測試
我打開腳本編輯器,選擇的功能TESTgetFileName
和得到的結果
My Drive/Detalhes_Farmacia.Fotografia_Fachada_1.JPEG
。
此功能可以從腳本運行,而不是直接從電子表格運行。當您嘗試使用它作爲表自定義公式,它拋出錯誤:
You do not have permission to call getFileById (line 8).
因此,更好地利用它從腳本來獲取數據,然後將結果寫在紙張上。
嘗試使用腳本:[驅動器應用程序](https://developers.google.com/apps-script/reference/drive/drive-app),[相關的Q上](http://stackoverflow.com/問題/ 25684098/how-to-make-a-list-on-google-spreadsheet-of-all-files-in-a-google-drive-folder) –
這個excel對應於一個表單。每行都有唯一項目的URL(圖片)。列出所有文件是不夠的,因爲我無法將每一行映射到它的相應URL(從而丟失每行的有用信息)。 –
請給予訪問任何文件,以便我可以測試腳本。我的文件具有如下鏈接:'https://drive.google.com/file/d/ key ...',所以我不確定代碼是否適用於鏈接:https://docs.google.com/ uc?id = ...' –