2017-07-22 1 views
0

J'essaie de rechercher un fichier spécifique File1 dans un dossier spécifique (nommé par une autre variable).Je tente de copier un fichier spécifique à partir d'un dossier spécifique dans Google Drive

Une fois que j'ai identifié le fichier, je veux faire une copie du fichier.

C'est ce que j'ai imaginé, avec l'aide de posts précédents et de nombreuses recherches sur google, mais rien ne se passe.

var folderName = ConsultName; 
var files = DriveApp.getFoldersByName(folderName).next().getFiles(); 
files.hasNext() && files == "File1" && files.next().makeCopy(); 

J'ai essayé sans files == "File1" et la fonction makeCopy() finirai copie quel que soit le fichier est à côté.

J'ai essayé de comprendre cela pendant plusieurs jours, mais je n'ai pas eu de chance.

Toute aide pourrait vous être utile. Merci!

Répondre

1

J'utilise ces fonctions de plusieurs façons pour charger et sauvegarder des données dans d'autres scripts. Si certains arguments sont omis, les valeurs par défaut sont fournies automatiquement. Je crois que vous pouvez utiliser ces blocs de construction pour créer une solution de copie pour vous-même

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; 
}