【问题标题】:Data movement of wrong files错误文件的数据移动
【发布时间】:2021-04-29 06:40:09
【问题描述】:

我编写了一个函数来将文件从一个文件夹移动到另一个文件夹。它可以工作,但问题是在打开目标文件夹时我看到我的谷歌脚本和其他一些不在源文件夹中的文档。

这里是代码


function moveFiles() {
var currentMonth = Utilities.formatDate(new Date(), "GMT+6", "MMMM");
const source_folder = DriveApp.getFolderById('XXXXXXX');
const files = source_folder.getFiles();
const dest_folder = DriveApp.getFolderById('XXXXXX').createFolder(currentMonth + " test text");
while (files.hasNext()) {
const file = files.next();
dest_folder.addFile(file);
source_folder.removeFile(file);
}
}



提前致谢

【问题讨论】:

    标签: google-apps-script google-sheets google-api


    【解决方案1】:

    我相信你的目标如下。

    • 您想将文件移动到使用 Google Apps 脚本创建的文件夹中。

    • 从以下情况来看,

      它可以工作,但是当我打开目标文件夹时,我看到我的谷歌脚本和其他一些不在源文件夹中的文档。

      • 我认为您可能希望将特定 mimeType 的文件移动到文件夹中。
    • 在现阶段,我认为Class File的moveTo(destination)可以用来将文件移动到文件夹中。

    修改脚本一:

    在此修改中,使用getFilesByType 检索文件。

    function moveFiles() {
      var currentMonth = Utilities.formatDate(new Date(), "GMT+6", "MMMM");
      const source_folder = DriveApp.getFolderById('XXXXXXX');
      const files = source_folder.getFilesByType(MimeType.GOOGLE_SHEETS);
      const dest_folder = DriveApp.getFolderById('XXXXXXX').createFolder(currentMonth + " test text");
      while (files.hasNext()) {
        files.next().moveTo(dest_folder);
      }
    }
    
    • 在此修改后的脚本中,Google 电子表格文件被移动。
    • 当您想修改mimeType时,请根据您的情况修改MimeType.GOOGLE_SHEETS

    修改脚本2:

    在此修改中,使用 getFiles 检索文件并在循环中检查 mimeType。

    function moveFiles() {
      var currentMonth = Utilities.formatDate(new Date(), "GMT+6", "MMMM");
      const source_folder = DriveApp.getFolderById('XXXXXXX');
      const files = source_folder.getFiles();
      const dest_folder = DriveApp.getFolderById('XXXXXXX').createFolder(currentMonth + " test text");
      const exclusiveMimeTypes = [MimeType.GOOGLE_APPS_SCRIPT, MimeType.GOOGLE_DOCS];
      while (files.hasNext()) {
        const file = files.next();
        if (!exclusiveMimeTypes.includes(file.getMimeType())) {
          file.moveTo(dest_folder);
        }
      }
    }
    
    • 在此示例脚本中,来自when opening the destination folder I see my google script and some other documents that aren't in the source folder,除了 Google Apps 脚本文件和 Google 文档文件之外的文件都被移动了。
    • 如果你想添加更多专属的mimeTypes,请修改上面的脚本。

    参考资料:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多