Google ドライブのファイルは複数のフォルダに入れておくことができます
ここでは指定したフォルダにファイルを「追加」するUIを作ります
「移動」ではないため、元のフォルダにもファイルは残ります
コード.gs
function doGet() { return HtmlService.createHtmlOutputFromFile('index'); } function addFileToFolder(file_id, folder_id) { var folder = DriveApp.getFolderById(folder_id); var file = DriveApp.getFileById(file_id); folder.addFile(file); } |
意訳この機能がやること 指定したHTMLファイルを表示する この機能がやること Googleドライブ内でfolder_idのフォルダを取得して file_idのファイルを取得して フォルダに追加する |
index.html
<!DOCTYPE html> <html> <body> Add file to target folder<br> <input type="text" id="file_url"> FILE URL<br> <input type="text" id="folder_url"> FOLDER URL<br> <button id="bt">Add</button><br> <a id="folder_link" target="_blank"></a> <script> elem('bt').onclick = btClicked; function elem(id) { return document.getElementById(id); } function btClicked() { elem('folder_link').textContent = ''; var file_url = elem('file_url').value; var folder_url = elem('folder_url').value; var file_id = file_url.split('/d/')[1].split('/')[0]; var folder_id = folder_url.split('/folders/')[1]; google.script.run .withFailureHandler(onFailure) .withSuccessHandler(onSuccess) .withUserObject(folder_url) .addFileToFolder(file_id, folder_id); } function onSuccess(result, folder_url) { elem('folder_link').href = folder_url; elem('folder_link').textContent = folder_url; } function onFailure(e) { alert([e.message, e.stack]); } </script> </body> </html> |