Reputation: 15
I'm trying to search for a specific file File1
in a specific folder (named through another variable).
Once I have identified the file, I want to make a copy of the file.
This is what I came up with, with the help of previous posts and many google searches but nothing happens.
var folderName = ConsultName;
var files = DriveApp.getFoldersByName(folderName).next().getFiles();
files.hasNext() && files == "File1" && files.next().makeCopy();
I've tried without the files == "File1"
and the makeCopy()
function will end up copying whatever file is next.
I've been trying to figure this out for several days, but haven't had any luck.
Any help would be helpful. Thanks!
Upvotes: 0
Views: 76
Reputation: 64072
I use these functions in several ways for loading and saving data in other scripts. If some arguments are omitted defaults are provided automatically. I believe you can use these building blocks to conjure up a copy solution for yourself
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;
}
Upvotes: 1