La classe de base pour manipuler vos données du drive est DriveApp. Pour changer des paramètres de partage ou supprimer un fichier, il sera donc nécessaire de commencer par cette classe. Après avoir déclarer la classe DriveApp, vous pourrez utiliser les fonctions suivantes :
Cette fonction renvoie une variable de classe Folder et permet de sélectionner un dossier
// URL du dossier : https://drive.google.com/drive/folders/1zeodhzdhozaooqk99ZZu
var dossier=DriveApp.getFolderById("1zeodhzdhozaooqk99ZZu")
// permet de récupérer un dossier via son identifiant
Cette fonction renvoie une variable de classe File
// URL du document/fichier : https://docs.google.com/spreadsheets/d/166pCI7Z0/edit#gid=0
//Son identifiant est placé après le d/ et avant /edit
var document=DriveApp.getFileById("166pCI7Z0")
// permet de récupérer un document via son identifiant
Cette fonction renvoie une variable de classe FileIterator et permet de récupérer une liste de fichiers.
var document=DriveApp.getFiles()
// Récupère la liste des documents du drive
Cette fonction renvoie une variable de classe FolderIterator et permet de récupérer une liste de dossiers.
var document=DriveApp.getFolders()
// Récupère la liste des dossiers du drive
Si vous avez récupéré un dossier via son identifiant, vous pouvez alors utiliser les fonctions suivantes :
Cette fonction permet de rechercher des fichiers suivant des critères passés en paramètre . Cette fonction renvoie une variable de classe FileIterator. Pour plus de détail sur les paramètres de recherches ici
var dossier=DriveApp.getFolderById("zhroao9928auas")
var files = dossier.searchFiles('modifiedDate > "2013-02-28" and title contains "archive"');
// Récupère les documents du dossier dont la date de modification est supérieure au 2013-02-28 et dont le titre contient "archive"
Cette fonction ajoute un email en tant que lecteur du document et renvoie une variable de classe Folder
var dossier=DriveApp.getFolderById("zhroao9928auas")
dossier.addViewer("dupont@gmail.com")
//Ajoute l'utilisateur dupont@gmail.com en tant que lecteur sur le dossier
Cette fonction supprime un lecteur d'un fichier avec son adresse mail et renvoie une variable de classe Folder
var dossier=DriveApp.getFolderById("zhroao9928auas")
dossier.removeViewer("dupont@gmail.com")
//Supprime l'utilisateur dupont@gmail.com en tant que lecteur sur le dossier
Si vous avez récupéré une liste de dossiers, vous pouvez alors utiliser les fonctions suivantes :
Cette fonction renvoie true si un prochain dossier est présent, false sinon
Si hasNext() vous renvoie false , cela signifie qu'il n'y a plus de dossier à parcourir dans l'objet FolderIterator, c'est à dire dans la liste des dossiers
Cette fonction permet de récupérer le prochain dossier dans la liste
Il est nécessaire de parcourir les dossiers avec cette fonction car il n'est pas possible de parcourir l'objet FolderIterator avec une boucle for classique
var folders = DriveApp.getFolders();
// hasNext() permet de vérifier si le prochain item de la liste est présent
// Tant qu'un prochain dossier est présent (i.e. true)
while (folders.hasNext()) {
var folder = folders.next();
Logger.log(folder.getName());
}
Si vous avez récupéré un document depuis un dossier ou via son identifiant, vous pouvez alors utiliser les fonctions suivantes :
Cette fonction créé une copie d'un document pour le placer dans un dossier puis renvoie une variable de classe File
var document=DriveApp.getFildeById("fkjreirueir8827jkzf")
var dossier_destination=DriveApp.getFolderById("llaoroeu7782")
document.makeCopy("New Doc", dossier_destination)
// Créer une copie de document avec comme nom New Doc et dans le dossier dossier_destination
Cette fonction récupère le nom du document puis renvoie une variable de type String
var document=DriveApp.getFildeById("fkjreirueir8827jkzf")
var nom_doc=document.getName()
// Renvoie le nom du fichier
Cette fonction récupère le document sous format Blob
Le type Blob permet de récupérer un fichier sous format String, utile pour la récupération de données CSV
var document=DriveApp.getFildeById("fkjreirueir8827jkzf")
//Récupération du Blob
var doc_blob=document.getBlob()
//Récupération du blob en tant que chaîne de caractères avec la fonction getDataAsString()
var doc_blob_string=doc_blob.getDataAsString()
// On suppose que la séparation du fichier est un point virgule
// On transforme alors la chaîne de caractère du blob en
// tableau 2D en séparant les données par le ;
var doc_blob_string_csv=Utilities.parseCsv(doc_blob_string,";")
Si vous avez récupéré une liste de documents, vous pouvez alors utiliser les fonctions suivantes :
Cette fonction renvoie true si un prochain document est présent, false sinon
Si hasNext() vous renvoie false , cela signifie qu'il n'y a plus de documents/fichiers à parcourir dans l'objet FileIterator, c'est à dire dans la liste des documents/fichiers
Cette fonction permet de récupérer le prochain dossier dans la liste
Il est nécessaire de parcourir les documents avec cette fonction car il n'est pas possible de parcourir l'objet FileIterator avec une boucle for classique
var files= DriveApp.getFiles();
// hasNext() permet de vérifier si le prochain item de la liste est présent
// Tant que le prochain item est présent (i.e. true)
while (files.hasNext()) {
var folder = files.next();
Logger.log(files.getName());
}
Ci dessous les lignes vers la documentation Google concernant les fonctions liées à Google Drive :
Voici un récapitulatif des classes liées à Google Drive et de leur imbrications :