質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

729閲覧

GASでGoogleドライブのファイルを複製するプログラムが動かない

yudu1217

総合スコア1

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

1グッド

0クリップ

投稿2024/03/31 10:57

編集2024/03/31 23:36

実現したいこと

https://utelecon.adm.u-tokyo.ac.jp/articles/gas/copy
こちらのページの”フォルダの複製方法”という手順に従ってGoogleドライブのファイルを複製するプログラムを作りたいです。

発生している問題・分からないこと

実行してみたところ、10行目がエラーになってしまいます。

エラーメッセージ

error

1Exception: Unexpected error while getting the method or property getFolderById on object DriveApp. 2mainCopyFolder @ コード.gs:10

該当のソースコード

GAS

1function mainCopyFolder() { 2 3 const folderIdSrc = "https://drive.google.com/drive/folders/15Jx8WHCBU8yVy17nTdGn4i1dUnankHMY?usp=drive_link"; // コピー元のフォルダid 4 const folderNameDest = "マウス"; // コピー先のフォルダ名 5 6 //使用後は""の中を以下の通りに復元する 7 //const folderIdSrc = "フォルダID"; // コピー元のフォルダid 8 //const folderNameDest = "新フォルダ名"; // コピー先のフォルダ名 9 10 const folderSrc = DriveApp.getFolderById(folderIdSrc); 11 const folderDest = folderSrc.getParents().next().createFolder(folderNameDest); 12 13 copyFolder(folderSrc, folderDest); 14} 15 16function copyFolder(src, dest) { 17 const folders = src.getFolders(); 18 const files = src.getFiles(); 19 20 while (files.hasNext()) { 21 const file = files.next(); 22 file.makeCopy(file.getName(), dest); 23 } 24 25 while (folders.hasNext()) { 26 const subFolder = folders.next(); 27 const folderName = subFolder.getName(); 28 const folderDest = dest.createFolder(folderName); 29 copyFolder(subFolder, folderDest); 30 } 31}

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

https://utelecon.adm.u-tokyo.ac.jp/articles/gas/copy
こちらをよく読んでみましたが、詳しくはわかりませんでした。

補足

特になし

TN8001😄を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TN8001

2024/03/31 11:21

「Java」タグは無関係なので外してください。
guest

回答1

0

ベストアンサー

folderIdとしてURLを指定しているのが誤りです。

const folderIdSrc = "https://drive.google.com/drive/folders/15Jx8WHCBU8yVy17nTdGn4i1dUnankHMY?usp=drive_link"; // コピー元のフォルダid

これを

const folderIdSrc = "15Jx8WHCBU8yVy17nTdGn4i1dUnankHMY"; // コピー元のフォルダid

に直してください。

投稿2024/03/31 11:03

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yudu1217

2024/03/31 11:09

無事動きました。ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問