我正在尝试在特定文件夹中搜索特定文件File1
(通过另一个变量命名)。
确定文件后,我想复制一份文件。
这是我提出的,借助之前的帖子和许多谷歌搜索,但没有任何反应。
var folderName = ConsultName;
var files = DriveApp.getFoldersByName(folderName).next().getFiles();
files.hasNext() && files == "File1" && files.next().makeCopy();
我试过没有files == "File1"
,makeCopy()
函数最终会复制下一个文件。
我一直试图弄清楚这几天,但没有运气。
任何帮助都会有所帮助。谢谢!
答案 0 :(得分:1)
我以多种方式使用这些函数来加载和保存其他脚本中的数据。如果省略某些参数,则会自动提供默认值。我相信你可以使用这些构建块为自己想出一个复制解决方案
function loadFile(filename,folderID)
{
var filename = (typeof(filename) !== 'undefined')? filename : DefaultFileName;
var folderID = (typeof(folderID) !== 'undefined')? folderID : DataFolderID;
var fldr = DriveApp.getFolderById(folderID);
var file = fldr.getFilesByName(filename);
var s = '';
while(file.hasNext())
{
var fi = file.next();
var target = fi.getName();
if(target == filename)
{
s = fi.getBlob().getDataAsString();
}
}
return s;
}
function saveFile(datstr,filename,append)
{
var append = (typeof(append) !== 'undefined')? append : false;
var filename = (typeof(filename) !== 'undefined')? filename : DefaultFileName;
var datstr = (typeof(datstr) !== 'undefined')? datstr : '';
var folderID = (typeof(folderID) !== 'undefined')? folderID : DataFolderID;
var fldr = DriveApp.getFolderById(folderID);
var file = fldr.getFilesByName(filename);
var targetFound = false;
while(file.hasNext())
{
var fi = file.next();
var target = fi.getName();
if(target == filename)
{
if(append)
{
datstr = fi.getBlob().getDataAsString() + datstr;
}
targetFound = true;
fi.setContent(datstr);
}
}
if(!targetFound)
{
var create = fldr.createFile(filename, datstr);
if(create)
{
targetFound = true;
}
}
return targetFound;
}