Search code examples
google-apps-scriptgoogle-drive-api

Creating files in specific folders in Drive using App Script


I am trying to create a Google Document (and would be useful for any other type of file) in a specific folder in Drive. I have consulted previous questions here on stack overflow, but cannot get my results. I have tried two different ways:

function createDoc(){

  var destFolder = DriveApp.getFolderById('1SsLunZh5sn5HDGkcCcTBoXkvDdc70J4g');
  var resource = {
    title: "New Test Doc",
    mimeType: MimeType.GOOGLE_DOCS,
    parents: [{ id: destFolder }]
  }

  Logger.log(destFolder);

  var fileJson = Drive.Files.insert(resource);
  var fileId = fileJson.id;

  Logger.log(fileId);

}

I've got the Advanced Drive API activated, but I get an error message stating:

GoogleJsonResponseException: API call to drive.files.insert failed with error: File not found: Udemy GAS Complete Course (line 25, file "Code")

I've also tried this:

function createDoc2(){

  var destFolder = DriveApp.getFolderById('1SsLunZh5sn5HDGkcCcTBoXkvDdc70J4g');
  var newDoc = DriveApp.createFile("New Test Doc", "", MimeType.GOOGLE_DOCS);

}

But I get an error stating: Exception: Invalid argument: file.contentType (line 35, file "Code")

Would very much appreciate some insight. Thanks in advance


Solution

  • Maybe this would work for you. I didn't test it. I just found that you didn't include the getId() method in id: key for the resource.

    function createDoc(){
      var destFolder = DriveApp.getFolderById('folderId');
      var resource = {"title": "New Test Doc",mimeType:MimeType.GOOGLE_DOCS,parents: [{id:destFolder.getId() }]}
      var fileJson = Drive.Files.insert(resource);
      var fileId = fileJson.id;
    }
    

    If this doesn't work let me know I'll be glad to take a better look at it.