如何通过谷歌脚本更新谷歌驱动器文本文件?

问题描述 投票:0回答:2

我希望Google脚本变量数据作为文本文件存储到Google驱动器中,并通过Google脚本更新该文本文件管理!

下面的代码创建一个文本文件并在其上写入数据。我想知道我以后如何更新文本文件?

function createTextFile()
{

  name="testFile.txt";
  name2="testFolder";

  var content = "this is text data to be written in text file";

var dir = DriveApp.getFoldersByName(name2).next()
var file = dir.createFile(name, content);
}
google-apps-script overwrite
2个回答
5
投票

update如果文件存在,则覆盖内容。

function saveData(folder, fileName, contents) {
  var filename = "testFile.txt";

  var children = folder.getFilesByName(filename);
  var file = null;
  if (children.hasNext()) {
    file = children.next();
    file.setContent(contents);
  } else {
    file = folder.createFile(filename, contents);
  }
}

function test() {
  var folders = DriveApp.getFoldersByName("testFolder");
  if (folders.hasNext()) {
    var folder = folders.next();
    saveData(folder, "testfile.txt", "HelloWorld");
    saveData(folder, "testfile.txt", "Welcome");
  }

}

1
投票

以防万年后任何人仍然感兴趣...... :)

假设内容为文本,则以下内容将创建或附加:

function createOrAppendFile() {
  var fileName="myfile";
  var folderName="myfolder";

  var content = "this is text data to be written in text file";

  // get list of folders with matching name
  var folderList = DriveApp.getFoldersByName(folderName);  
  if (folderList.hasNext()) {
    // found matching folder
    var folder = folderList.next();

    // search for files with matching name
    var fileList = folder.getFilesByName(fileName);

    if (fileList.hasNext()) {
      // found matching file - append text
      var file = fileList.next();
      var combinedContent = file.getBlob().getDataAsString() + content;
      file.setContent(combinedContent);
    }
    else {
      // file not found - create new
      folder.createFile(fileName, content);
    }
  }
}

总之,由于似乎没有追加功能,您只需读取现有文件内容,添加新内容,然后(结束)将组合内容写回文件。

*提示 - 在旧内容和新内容之间添加“\ n”以换行新行

© www.soinside.com 2019 - 2024. All rights reserved.