Skip to content

Instantly share code, notes, and snippets.

@danjargold
Created August 11, 2018 09:31
Show Gist options
  • Select an option

  • Save danjargold/c6542e68fe3a3b46eeb0172f914641bc to your computer and use it in GitHub Desktop.

Select an option

Save danjargold/c6542e68fe3a3b46eeb0172f914641bc to your computer and use it in GitHub Desktop.

Revisions

  1. danjargold created this gist Aug 11, 2018.
    71 changes: 71 additions & 0 deletions whatFilesHaveIShared.gs
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,71 @@
    function listFolders(folder) {
    var sheet = SpreadsheetApp.getActiveSheet();
    sheet.appendRow(["Name", "Sharing Access", "Sharing Permission", "Get Editors", "Get Viewers", "Date", "Size", "URL", "Download", "Description", "Type"]); //writes the headers

    //var folder = DriveApp.getFolderById("INSERT_YOUR_FILE_ID");//that long chunk of random numbers/letters in the URL when you navigate to the folder
    //getLooseFiles(folder, sheet);
    //getSubFolders(folder, sheet);

    //instead of getting folder by ID rather get all folders and cycle through each. Note this will miss loose files in parent directory.
    var folder = DriveApp.getFolders()
    while (folder.hasNext()) {
    var name = folder.next();
    getLooseFiles(name, sheet);
    getSubFolders(name, sheet);
    };

    }

    function getLooseFiles(folder, sheet) {
    var files = folder.getFiles();//initial loop on loose files w/in the folder
    var cnt = 0;
    var file;

    while (files.hasNext()) {
    var file = files.next();
    var listEditors = file.getEditors(); //gets the editor email(s), doesn't show your own as it's assumed
    var editors = [];
    for (var cnt = 0; cnt < listEditors.length; cnt++) {
    editors.push(listEditors[cnt].getEmail());
    Logger.log(editors);
    };
    var listViewers = file.getViewers(); //gets the viewer email(s)
    var viewers = [];
    for (var cnt = 0; cnt < listViewers.length; cnt++) {
    viewers.push(listViewers[cnt].getEmail());
    Logger.log(viewers);
    }
    cnt++; //data chunk pushes all the file info to the ss

    data = [
    file.getName(),
    file.getSharingAccess(),
    file.getSharingPermission(),
    editors.toString(),
    viewers.toString(),
    file.getDateCreated(),
    file.getSize(),
    file.getUrl(),
    "https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(),
    file.getDescription(),
    file.getMimeType(),
    ];

    if(data[1] != "PRIVATE") {
    sheet.appendRow(data);
    }

    };

    }

    function getSubFolders(folder, sheet) {
    var subfolders = folder.getFolders(); //same thing as above but for all the subfolders in the folder

    while (subfolders.hasNext()) {
    Logger.log(folder);
    var name = subfolders.next();
    getLooseFiles(name, sheet);
    getSubFolders(name, sheet);
    };
    }