【问题标题】:Copy File One folder to another folder in Google Drive using file list from a text file使用文本文件中的文件列表将文件一个文件夹复制到 Google 云端硬盘中的另一个文件夹
【发布时间】:2020-02-08 13:17:49
【问题描述】:

这是“Tanaike”回答的原始问题 Copy File One folder to another folder in Google Drive using file name

我们能否从 gdrive 的文本文件中获取“var filenames =”值

假设我在“abc”文件夹中的 gdrive 文件夹名称“abc”中上传了一个文本文件,我在 filename.txt 中有文本文件名“filename.txt”,我逐行保存了一些文件名。这是 filename.txt 的截图 https://i.imgur.com/5JT348U.jpg

filename.txt 列出的文件位于“文件夹 1”内。现在我希望脚本将从“abc/filename.txt”中检索 var 文件名值并复制到“文件夹 2”

function copyfile(e) {
  var filenames = DriveApp.getFilesByName("filename.txt").next().getBlob().getDataAsString().split("\n").filter(String);
  var sourceFolderName = "Folder 1";
  var destinationFolderName = "Folder 2";
  var source_folder = DriveApp.getFoldersByName(sourceFolderName).next();
  for (var i = 0; i < filenames.length; i++) {
    var filename = filenames[i];
    var file = source_folder.getFilesByName(filename);
    if (file.hasNext()) {
      var dest_folder = DriveApp.getFoldersByName(destinationFolderName).next();
      var srcFile = file.next();
      var newName = srcFile.getName();
      srcFile.makeCopy(newName, dest_folder);
    }
  }
}

【问题讨论】:

  • 我可以问你关于你的问题吗?我认为可以从 Google Drive 中的文本文件中检索这些值。但在您的问题中,您想将文本文件上传到您的网站。如果我的理解是正确的,我认为提供将文件上传到您的站点的规范将有助于用户思考解决方案。
  • 您能否指导如何从谷歌驱动器文本中检索值?我认为这种方法对我有用。提前致谢。
  • 感谢您的回复。为了从filename.txt 的文本文件中检索文件名,您可以使用var filenames = DriveApp.getFilesByName("filename.txt").next().getBlob().getDataAsString().split("\n").filter(String); 的脚本。但是您想将文件上传到您的站点?我对你的回复感到困惑。我为我糟糕的英语水平道歉。
  • 我的英语水平也很差。我试过var filenames = DriveApp.getFilesByName("filename.txt").next().getBlob().getDataAsString().split("\n").filter(String);,但它只处理第一行文件名。我们能否为“filename.txt”设置不同的路径,例如 Mydrive=>“abc folder/filename.txt”脚本将从“abc folder/filename.txt”中检索值。这个灵魂对我来说很好。
  • 感谢您的回复。 filenames 是一个数组。为了正确理解您当前的情况,您能否提供您的脚本来复制您的问题?因为我不确定您当前的脚本。这是因为我的技术不好。我必须为此道歉。如果可以,请通过edit 将其添加到您的问题中。顺便说一句,您想将文件上传到您的网站吗?这个怎么样?

标签: google-apps-script google-drive-api copy


【解决方案1】:

最初由https://stackoverflow.com/users/7108653/tanaike回答

var filenames = DriveApp.getFoldersByName("abc").next().getFilesByName("filename.txt").next().getBlob().getDataAsString().split("\n").filter(String);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 2012-05-05
    • 2013-04-04
    • 2015-04-27
    • 2020-09-26
    • 1970-01-01
    相关资源
    最近更新 更多