Naar inhoud
lightbulb Welkom op de nieuwe kennisbank | We hebben de docs volledig vernieuwd met meer dan 160 features. Bekijk wat nieuw isarrow_forward

Bestanden aanmaken en bewerken in Drive met Apps Script

Leer bestanden en mappen aanmaken, zoeken, kopieren en delen in Google Drive met Apps Script en de DriveApp-service om documentstromen binnen Workspace te automatiseren.

Bestanden aanmaken en bewerken in Google Drive met Apps Script geeft je controle over je documentstroom. Je kunt mappen opzetten, bestanden genereren, kopieren, verplaatsen en deelrechten beheren, allemaal vanuit code. In dit artikel leer je de belangrijkste DriveApp-handelingen waarmee je archivering en bestandsbeheer automatiseert.

Een bestand aanmaken

De eenvoudigste actie is een tekstbestand maken met createFile(). Je geeft een naam en de inhoud mee:

function maakTekstbestand() {
  const bestand = DriveApp.createFile('logboek.txt', 'Eerste regel van het logboek.');
  Logger.log('Bestand gemaakt: ' + bestand.getUrl());
}

Het bestand belandt in de hoofdmap van je Drive. Wil je het elders, dan maak je het in een specifieke map (zie verderop).

info

MIME-types

Met DriveApp.createFile() kun je ook bestanden met een specifiek type maken via een blob. Bijvoorbeeld een HTML-bestand of een PDF. De volledige lijst MIME-types en methodes staat in de officiele Apps Script Drive-referentie op developers.google.com/apps-script/reference/drive.

Mappen maken en bestanden ordenen

Structuur breng je aan met mappen. Je maakt een map en plaatst er bestanden in:

function maakMapMetBestand() {
  const map = DriveApp.createFolder('Rapportages 2026');
  const bestand = map.createFile('mei.txt', 'Rapport van mei.');
  Logger.log('Bestand staat in map ' + map.getName());
}

map.createFile() plaatst het bestand direct in die map, zodat je niet apart hoeft te verplaatsen.

Bestanden zoeken

Om een bestaand bestand te bewerken, moet je het eerst vinden. Op naam zoeken doe je met getFilesByName(), dat een iterator teruggeeft:

function zoekOpNaam() {
  const bestanden = DriveApp.getFilesByName('logboek.txt');
  while (bestanden.hasNext()) {
    const bestand = bestanden.next();
    Logger.log('Gevonden: ' + bestand.getUrl());
  }
}

Voor geavanceerder zoeken gebruik je searchFiles() met een query, bijvoorbeeld op type of wijzigingsdatum:

function zoekPdfs() {
  const query = 'mimeType = "application/pdf" and modifiedDate > "2026-05-01"';
  const bestanden = DriveApp.searchFiles(query);
  while (bestanden.hasNext()) {
    Logger.log(bestanden.next().getName());
  }
}
warning

Let op de query-syntax

DriveApp.searchFiles() gebruikt de query-taal van Drive API v2. Schrijf daarom modifiedDate (en niet modifiedTime, dat hoort bij v3). Een verkeerd veldnaam levert geen fout op maar gewoon geen resultaten, dus dit is een veelvoorkomende valkuil.

lightbulb

Werk met de iterator

Een iterator (hasNext/next) lijkt omslachtig, maar voorkomt dat Drive duizenden bestanden tegelijk in het geheugen laadt. Verwerk bestanden een voor een binnen de while-loop, dan blijft je script snel en stabiel, ook bij grote mappen.

Inhoud bewerken en bestanden kopieren

De tekstinhoud van een bestand wijzig je met setContent(). Een bestand kopieren doe je met makeCopy():

function bewerkEnKopieer() {
  const bestand = DriveApp.getFilesByName('logboek.txt').next();
  bestand.setContent('Nieuwe inhoud, oude is overschreven.');

  const kopie = bestand.makeCopy('logboek-backup.txt');
  Logger.log('Kopie gemaakt: ' + kopie.getUrl());
}
warning

setContent werkt alleen op tekstbestanden

setContent() overschrijft de inhoud van een bestand als platte tekst. Het werkt dus op tekstbestanden zoals .txt, .csv of .html, maar niet op Google Docs, Sheets of binaire bestanden. Wil je een Google Doc programmatisch aanpassen, gebruik dan de DocumentApp- of de Docs API-service.

Deelrechten beheren

Een belangrijk gebruik is het beheren van wie toegang heeft. Je voegt bewerkers of lezers toe en stelt de algemene toegang in:

function deelBestand() {
  const bestand = DriveApp.getFilesByName('rapport.txt').next();
  bestand.addEditor('collega@cloud-captains.com');
  bestand.addViewer('extern@klant.nl');
  bestand.setSharing(DriveApp.Access.DOMAIN_WITH_LINK, DriveApp.Permission.VIEW);
}
warning

Pas op met openbaar delen

Wees voorzichtig met setSharing(DriveApp.Access.ANYONE_WITH_LINK, ...). Daarmee maak je een bestand openbaar voor iedereen met de link, ook buiten je organisatie. Gebruik bij voorkeur DOMAIN_WITH_LINK zodat alleen je eigen Workspace-domein toegang heeft, en deel met externen alleen gericht op naam.

Een maandelijks archief opzetten

Een veelgebruikt patroon is een script dat elke maand netjes archiveert in een vaste mapstructuur. De stappen hieronder vormen de kern.

Zo zet je een maandelijks archief op

  1. Zoek met getFoldersByName() of de jaarmap bestaat, en maak hem anders aan met createFolder().
  2. Maak in de jaarmap een maandmap met createFolder().
  3. Genereer of kopieer de relevante bestanden in die maandmap met createFile() of makeCopy().
  4. Stel de juiste deelrechten in met addEditor() of setSharing().
  5. Log de URL van de maandmap met getUrl() zodat collega's hem terugvinden.

Koppel dit script aan een tijdgestuurde trigger (bijvoorbeeld de eerste van de maand) en de archivering loopt volledig automatisch.

Combineren met andere diensten

Drive-automatisering komt het best tot zijn recht in combinatie met andere services. Genereer bijvoorbeeld een PDF en sla die op in een maandmap, zie automatisch PDF-documenten genereren. Of stuur een gegenereerd bestand als bijlage mee, zie e-mails versturen via Gmail.

Waar belandt een nieuw bestand standaard?

In de hoofdmap (root) van je Drive, tenzij je het via map.createFile() direct in een specifieke map maakt.

Hoe verplaats ik een bestand naar een map?

Gebruik bestand.moveTo(map) in de moderne API. De oudere methodes addToFolder en removeFromFolder zijn afgeraden.

Kan ik een bestand permanent verwijderen?

Met bestand.setTrashed(true) gooi je het in de prullenbak. Permanent verwijderen kan via de geavanceerde Drive-service (Advanced Drive Service).

Hoe vind ik het id van een bestand?

Met bestand.getId(). Dat id gebruik je later om het bestand direct te openen met DriveApp.getFileById(), wat sneller is dan op naam zoeken.

Waarom geeft searchFiles geen resultaten op datum?

Waarschijnlijk gebruik je modifiedTime in plaats van modifiedDate. DriveApp werkt met de Drive API v2 query-syntax, dus de juiste veldnaam is modifiedDate.

Werkt dit ook op een gedeelde Drive (Shared Drive)?

Ja, maar je hebt er voldoende rechten voor nodig. Items op een gedeelde Drive open je het makkelijkst via hun id met getFileById() of getFolderById().