見出し画像

GAS|名前と MIME type(マイムタイプ)からファイルを検索する|File|getFilesByName|Folder|DriveApp|Google Apps Script|開発裏話

マンガポスト日本版」では、Google ドライブ内に保存している「コミックス発売日情報」を参照して、その日付を基に毎日自動配信(ツイート)しています。

Google ドライブ内からファイルを検索する場合、「DriveApp.searchFiles」というメソッドが GAS には存在しますが、現在、こちらが正常に機能していません。取得した「FileIterator」の「FileIterator.hasNext()」を呼び出すと、必ず「引数が無効」というエラーが発生します

ですので、以下のような代替メソッドを実装しました。

/**
 * Gets the file that match the given name and MIME type.
 * 
 * @param id — the ID of the folder
 * @param name — the name of the files to find
 * @param mimeType — the MIME type of the files to find
 * @return File — the file or null if no match
 */
function findFileByName(id, name, mimeType) {
  // gets a collection of all files that have the given name
  var files = DriveApp.getFolderById(id).getFilesByName(name);
  while (files.hasNext()) {
    // gets the next item in the collection of files
    var file = files.next();
    if (mimeType == file.getMimeType()) {
      return file;
    }
  }
  return null;
}

Google ドライブは同名ファイルの存在を許容しますが、同一の「MIME Type」で同名ファイルが存在するというのは、本来やるべきことではありません。ですので、最初に検出したファイルを取得するようにしています。

マンガポスト日本版

マンガポスト日本版の Twitter 公式アカウントです。
漫画(まんが)・コミックの新刊情報を毎日配信中!

コーヒーブレイク

雨宮夕日はごく普通の平凡大学生だった……ハズが、ある日現れた喋るトカゲに「地球の危機」を救う協力を依頼される。拒否するまもなく、既に指輪と能力が与えられ、早くも敵に襲われてしまった夕日を救ったのはなんとお隣さんの少女・さみだれ。救世主の降臨と思いきや、実は地球征服を企む魔王だった……。

いいなと思ったら応援しよう!

この記事が参加している募集