:::

9-3 列出雲端目錄下的所有檔案

雲端目錄把所有指定目錄下的檔案全部列出,方便查看。

列出目錄下所有檔案可以製作副本 https://docs.google.com/spreadsheets/d/1lt6LSiDlYdXto_kSznIjy8MBMsT-0PykpJ5ban_8aDE/edit?usp=sharing

在觸發條件可以增加開啟文件時,createMenu ,最右方增加選單,不用每次進指令編輯器中執行。 

 

程式:

//修改這一行,點雲端檔目錄,在網址上出現的   id  
var folderId = '1w81_xYzkY4ZNXkMU16XR3xzBGpaPYPME'; 

//加入選單功能
function createMenu(){
  var menuEntries = [ {name: "更新全部檔案", functionName:"listAll"}];
  var sh = SpreadsheetApp.getActiveSpreadsheet();
  sh.addMenu("*檔案整理",menuEntries);   
}


// 主程式  
function listAll(){
  //目錄 id , 是否列出目錄 , 是否再進入子目錄
  getFolderTree_data(folderId, true , true); 
};


// 取得目錄樹狀結構
function getFolderTree_data(folderId, onlyFile , listSub) {
  
  try {
    // 目錄的 id
    var parentFolder = DriveApp.getFolderById(folderId);
    var parentName = parentFolder.getName() ;
  
    var file,  sheet = SpreadsheetApp.getActiveSheet();
    sheet.clear();
    sheet.appendRow(["檔名","下載" , "目錄", "日期"]);

    var data = []   ;
    getChildFolders_data (parentName, parentFolder, data ,  onlyFile , listSub);
    //Logger.log(data) ;

    //把檔案列表放入 sheet 中
    var range = sheet.getRange(2,1, data.length ,4);
    range.setValues(data) ;

    //第一行鎖住不排序
    sheet.setFrozenRows(1);
    //時間排序
    //range.sort([{column: 4, ascending: false}]);

  } catch (e) {
    Logger.log(e.toString());
  }
};


// 取得下方資料
function getChildFolders_data(parentName, parent, data,  onlyFile , listSub) {
 
  //子目錄
  var childFolders = parent.getFolders();

  while (childFolders.hasNext()) {
    var childFolder = childFolders.next();
    //Logger.log("Folder Name: " + childFolder.getName());
    if (!onlyFile) {
      //檔案日期
      var file_date = Utilities.formatDate(childFolder.getLastUpdated(), "GMT", "yyyy-MM-dd");
      
      //連結
      //var gid = 'https://drive.google.com/drive/folders/' + childFolder.getId() ;
      var file_link = '=HyperLink("' + childFolder.getUrl()+ '"," link ")';

      var file_data =[] ;
      file_data=[ 
        childFolder.getName(),
        file_link ,
        parentName ,
        file_date 
      ];
      data.push(file_data) ;
      Logger.log("Folder Name: " + childFolder.getName());
    }


    // 再找子目錄
    if (listSub ) {
      getChildFolders_data(parentName + "/" + childFolder.getName(), childFolder, data ,onlyFile ,listSub );
      //Logger.log("...Folder Name: " + childFolder.getName());
    }  
    //Logger.log(data) ;
  }
  
  // 目錄下的檔案
  var files = parent.getFiles();
  while (files.hasNext()) {
    var childFile = files.next();
    //Logger.log("File Name: " + childFile.getName());
    if (childFile.getName() != '檔案列表')  {
      //檔案日期
      var file_date = Utilities.formatDate(childFile.getLastUpdated(), "GMT", "yyyy-MM-dd");
      
      //連結
      //var gid = 'https://drive.google.com/u/0/uc?id=' + childFile.getId() +'&export=download';
      var file_link = '=HyperLink("' + childFile.getUrl()+ '"," link ")';

      //檔案資料
      var file_data =[] ;
      file_data=[ 
        childFile.getName(),
        file_link ,
        parentName ,
        file_date 
      ];
      data.push(file_data) ;
    }

  }

};

 

 


Google網站翻譯工具列

站內搜尋