function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('[Découvrir G Suite]')
.addItem('Inventorier vos fichiers', 'listeInventaire')
.addToUi();
}
// Dressez la liste de tous les fichiers et dossiers, et écrire dans la feuille actuelle
function listeInventaire(){
var ui = SpreadsheetApp.getUi(); //
var resultat = ui.prompt(
'Inventaire à réaliser',
'Indiquer l\'ID du dossier:',
ui.ButtonSet.OK_CANCEL);
var button = resultat.getSelectedButton();
var idDuDossier = resultat.getResponseText();
if (button == ui.Button.OK) {
obtenirArborescenceDossiers(idDuDossier, true);
}
}
// =======================================
// Obtenir l'arborescence des dossiers
// =======================================
function obtenirArborescenceDossiers(idDuDossier, listeTotale) {
try {
// Récupérer le dossier par identifiant
var dossierParent = DriveApp.getFolderById(idDuDossier);
// Initialiser la feuille de calcul
var data;
var feuille = SpreadsheetApp.getActiveSheet();
feuille.clear();
feuille.appendRow(["Chemin", "Nom", "Date", "URL", "Dernière mise à jour", "Propriétaire", "Taille"]);
feuille.getRange(feuille.getLastRow(), 1, 1, feuille.getLastColumn()).setFontWeight("bold");
// Obtenir les fichiers et les dossiers
obtenirDossiersEnfants(dossierParent.getName(), dossierParent, data, feuille, listeTotale);
} catch (e) {
Logger.log(e.toString());
}
};
// Obtenir la liste des fichiers et dossiers et leurs métadonnées en mode récursif
function obtenirDossiersEnfants(nomDossierParent, dossierParent, data, feuille, listeTotale) {
var dossierEnfants = dossierParent.getFolders();
// Liste des dossiers à l'intérieur du dossier
while (dossierEnfants.hasNext()) {
var dossierEnfant = dossierEnfants.next();
data = [
nomDossierParent + "/" + dossierEnfant.getName(),
dossierEnfant.getName(),
' ',
dossierEnfant.getDateCreated(),
dossierEnfant.getUrl(),
dossierEnfant.getLastUpdated(),
dossierEnfant.getOwner().getName(),
dossierEnfant.getSize()
];
// Ecriture dans la feuille
feuille.appendRow(data);
feuille.getRange(feuille.getLastRow(), 1, 1, 1).setFontWeight("bold");
// Liste des fichiers contenus dans le dossier
var fichiers = dossierEnfant.getFiles();
while (listeTotale & fichiers.hasNext()) {
var fichierEnfant = fichiers.next();
data = [
" " + nomDossierParent + "/" + dossierEnfant.getName() + "/" + fichierEnfant.getName(),
fichierEnfant.getName(),
fichierEnfant.getMimeType(),
fichierEnfant.getDateCreated(),
fichierEnfant.getUrl(),
fichierEnfant.getLastUpdated(),
fichierEnfant.getOwner().getName(),
fichierEnfant.getSize()
];
// Ecriture dans la feuille
feuille.appendRow(data);
}
// Appel récursif du sous-dossier
obtenirDossiersEnfants(nomDossierParent + "/" + dossierEnfant.getName(), dossierEnfant, data, feuille, listeTotale);
}
};
|
Commentaires
Enregistrer un commentaire