구글드라이브에 너무 많은 파일을 넣어놓다보니
나름 폴더 정리를 한다고 생각했는데도 찾기가 힘들때가 상당히 자주 있습니다.
그래서 구글드라이브의 파일 리스트를 만들 필요성을 느꼈는데요
개인적으로도 잘 사용하고 있지만 특히 회사에서 공유드라이브의 파일 목록을
매일 새벽에 업데이트 하도록 트리거를 걸어놓아서 매우 잘 사용하고 있습니다.
아래 스크립트를 이용하시면 될 것 같습니다.
두개의 function을 이용하고 있고
특정 폴더 아래의 파일 리스트를 추출하고자 하시는 경우
9행의 getFileList의 파라미터를
폴더명, folderID, 0 으로 입력해 주시면 됩니다.
혹시 질문 있으시다면 댓글로 달아 주시면 친절히 답해 드리겠습니다.
var maxlevel = 0;
var filelist = [];
function fileList() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName('FileList');
sh.clear();
var root = DriveApp.getRootFolder().getId();
getFileList('root', root, 0);
sh.getRange(1, 1).setHorizontalAlignment('center');
sh.getRange(1, 1).setValue('Folder');
sh.getRange(1, 2).setValue('FileName');
sh.getRange(1, 3).setValue('FileUrl');
sh.getRange(1, 4).setValue('FileMimeType');
sh.getRange(1, 5).setValue('Description');
var row = 2;
for(var i in filelist){
sh.getRange(row, 1).setValue(filelist[i].folderName);
sh.getRange(row, 2).setValue(filelist[i].fileName);
sh.getRange(row, 3).setValue(filelist[i].fileUrl);
sh.getRange(row, 4).setValue(filelist[i].fileMimeType);
sh.getRange(row, 5).setValue(filelist[i].fileDescription);
row++;
}
sh.getRange(2, 1, 5).sort(1);
}
function getFileList(name, id, level){
if(maxlevel < level) maxlevel = level;
var folder = DriveApp.getFolderById(id); // I change the folder ID here
var subfolders = folder.getFolders();
while(subfolders.hasNext()){
subfolder = subfolders.next();
getFileList(name + '\\' + subfolder.getName(), subfolder.getId(), ++level);
level--;
}
var files = folder.getFiles();
while(files.hasNext()){
file = files.next();
filelist.push({
folderName: name,
fileName: file.getName(),
fileUrl: file.getUrl(),
fileMimeType: file.getMimeType(),
fileDescription: file.getDescription() == null ? '' : file.getDescription()
});
}
}
'개발자로 살기' 카테고리의 다른 글
[북리뷰] 모던 자바스크립트로 배우는 리액트 입문 (0) | 2023.03.31 |
---|---|
[북리뷰] 업무에 바로 쓰는 AWS 입문 (0) | 2023.02.28 |
[북리뷰] 구글 앱스 스크립트 완벽가이드 (0) | 2022.07.29 |
구글 앱 스크립트 기본 TimeZone 설정 변경하기 (0) | 2022.02.14 |
[북리뷰] 모던 자바스크립트 핵심 가이드 (0) | 2022.01.02 |