如何解决.addFile似乎已被弃用,我还可以使用什么其他方法? 修改点:修改后的脚本:参考文献:
我想将文件从Google云端硬盘复制到我设置为的目标位置,但是.addFile似乎已被弃用。
我尝试使用moveto
和makecopy
,但似乎无法正常使用。这是我现在拥有的代码:
function copyfile() {
var ss = SpreadsheetApp.getActive();
var activeSheet = ss.getSheetByName("sheet_Patients");
var activeSheetFM = ss.getSheetByName("_FolderMaker_");
var lastRow = activeSheet.getLastRow();
var data = activeSheet.getRange(lastRow,3,1,1).getValue();
var secondData = activeSheet.getRange(lastRow,4,1).getValue();
var folder_Name = [data+ "," +secondData];
var folders = DriveApp.getFoldersByName(folder_Name);
while (folders.hasNext()) {
const folder = folders.next();
var id = folder.getId();
}
activeSheetFM.getRange(2,1).setValue(id);
var file = DriveApp.getFileById("1g25_24OTv_t5Qav2Q1hwEM_YBiPSaWWb");
var source_folder = DriveApp.getFolderById("1pqh74miSSy9WDSD3kpi02kkI6XDuXiuU");
var dest_folder = DriveApp.getFoldersByName(id);
//Logger.log(finalId);
var finalFile = file.makecopy(data+ ','+ secondData + ' ' + Utilities.formatDate(new Date(),Session.getScriptTimeZone(),'yyyy-MM-dd') + ' ' + file.getName());
dest_folder.addFile(finalFile);
source_folder.removeFile(finalFile);
}
解决方法
修改点:
- 在您的脚本中,
isMatch(imgData.data,refImg); // imgData is an actual image data object so we need to access its 'data' property // refImg is the 'data' array saved to local storage,no need to access 'data' on it
中的dest_folder
是FolderIterator。- 我认为这可能是您遇到
var dest_folder = DriveApp.getFoldersByName(id);
问题的原因。
- 我认为这可能是您遇到
- 根据您的情况,如果用
I tried using moveTo and makeCopy but i cant seem to get it to work.
检索的文件夹是目标文件夹,则可以直接使用var folders = DriveApp.getFoldersByName(folder_Name);
。 - 在当前阶段,我建议使用
const folder = folders.next();
将文件移动到特定文件夹。
当以上几点反映到您的脚本时,它如下所示。
修改后的脚本:
从:moveTo
至:
var folders = DriveApp.getFoldersByName(folder_Name);
while (folders.hasNext()) {
const folder = folders.next();
var id = folder.getId();
}
activeSheetFM.getRange(2,4,1,1).setValue(id);
var file = DriveApp.getFileById("1g25_24OTv_t5Qav2Q1hwEM_YBiPSaWWb");
var source_folder = DriveApp.getFolderById("1pqh74miSSy9WDSD3kpi02kkI6XDuXiuU");
var dest_folder = DriveApp.getFoldersByName(id);
//Logger.log(finalId);
var finalFile = file.makeCopy(data+ ','+ secondData + ' ' + Utilities.formatDate(new Date(),Session.getScriptTimeZone(),'yyyy-MM-dd') + ' ' + file.getName());
dest_folder.addFile(finalFile);
source_folder.removeFile(finalFile);
参考文献:
,说明:
您基本上需要使用makeCopy(name,destination),而目的地必须是folder
类型而不是iterator
。
因此,您应该这样做:
var dest_folder = DriveApp.getFolderById(id);
var finalFile = file.makeCopy(data+ ','yyyy-MM-dd') + ' ' + file.getName(),dest_folder);
解决方案:
function copyfile() {
var ss = SpreadsheetApp.getActive();
var activeSheet = ss.getSheetByName("sheet_Patients");
var activeSheetFM = ss.getSheetByName("_FolderMaker_");
var lastRow = activeSheet.getLastRow();
var data = activeSheet.getRange(lastRow,3,1).getValue();
var secondData = activeSheet.getRange(lastRow,1).getValue();
var folder_Name = [data+ "," +secondData];
var folders = DriveApp.getFoldersByName(folder_Name);
while (folders.hasNext()) {
const folder = folders.next();
var id = folder.getId();
}
activeSheetFM.getRange(2,1).setValue(id);
var file = DriveApp.getFileById("1g25_24OTv_t5Qav2Q1hwEM_YBiPSaWWb");
var source_folder = DriveApp.getFolderById("1pqh74miSSy9WDSD3kpi02kkI6XDuXiuU");
var dest_folder = DriveApp.getFolderById(id);
var finalFile = file.makeCopy(data+ ',dest_folder);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。