2017-07-22 114 views
0

我試圖在特定文件夾(通過其他變量命名)中搜索特定文件File1嘗試複製Google Drive中特定文件夾中的特定文件

一旦我已經確定了文件,我想使文件的副本。

這是我想出來的,以前的帖子和許多谷歌搜索的幫助,但沒有任何反應。

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

我試過沒有files == "File1"makeCopy()功能最終會複製任何文件旁邊。

我一直在試圖算出這個好幾天了,但還沒有任何運氣。

任何幫助將是有益的。謝謝!

回答

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; 
} 
相關問題