LoginSignup
4

More than 3 years have passed since last update.

【GAS】Google Driveの指定フォルダ内にある画像ファイルを全取得する

Posted at

目的

  • Google Driveで管理している指定フォルダ内にある画像ファイルを全取得したい
  • 画像データを直接呼び出せるURLのフォーマットで取得をしたい

ディレクトリ構造

parentFolder
│
├ childFolder
│   ├ id_1.jpg
│   ├ id_2.jpg
│   ├ id_3.jpg
│   └ id_4.jpg
│
├ childFolder2
│   └ ...
├ childFolder3
│   └ ...
└ childFolder4
    └ ...

結果

  • inputData
    • prentFolderのid
    • childFolderの名前
  • outputData
    • id_1.jpgの画像URL
    • id_2.jpgの画像URL
    • id_3.jpgの画像URL
    • id_4.jpgの画像URL

実装

 //検索ワード
  var targetFolderName = "指定フォルダの名称";

  //対象の親フォルダを取得
  var parentFolderID = "parentFolderID";
  var parenFolder = DriveApp.getFolderById(parentForderID).getFolders();

  var childFolderID;
  while (parentFolder.hasNext()) {
    var folder = parentFolder.next();
    var folderName = folder.getName();
    if(folderName == targetFolderName){
      childFolderID = folder.getId();
      break;
    }
  }
  if(!childFolderID){
    Logger.log("存在しないフォルダです。");
    return;
  }

  /************************************************
  必要な場合、同手順を検索対象の画像ファイルがあるフォルダまで行う
  ************************************************/

  //対象フォルダに入っている画像の全取得
  var files = DriveApp.getFolderById(childFolderID).getFiles();

  var file;
  var fileID;
  var pictureURL;
  while (files.hasNext()) {
    file = files.next();
    fileID = file.getId();
    pictureURL = "https://drive.google.com/file/d/" + fileID + "/view?usp=sharing";
    Logger.log(pictureURL);
  }
  if(!pictureURL){
    Logger.log("指定したフォルダに画像は存在しませんでした。");
    return;
  }

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4