2013-02-19 60 views

回答

0

參考代碼你可以做DocsList.find(fileName),讓你有這個名字的文件列表。如果文件名是唯一的,那麼你可以做var file = DocsList.find(fileName)[0]


如果你是一個谷歌Apps的用戶,您可以使用file.clear()刪除舊文件的所有內容,然後file.append()插入所有的新內容。


否則,你將不得不file.setTrashed(true)然後DocsList.createFile()作出新的。

+0

謝謝你的菲爾,你是男人。 – BigK 2013-02-19 23:42:58

3

我知道這是一個古老的問題,但接受的答案中的大部分信息已被Google棄用。 DocsList消失了,就像文件對象上的clear()和append()方法一樣。

我用下面的函數來創建或覆蓋文件:

// Creates or replaces an existing file 
function updateFile (folder, filename, data) { 
    try { 
    // filename is unique, so we can get first element of iterator 
    var file = folder.getFilesByName(filename).next() 
    file.setContent(data) 
    } catch(e) { 
    folder.createFile(filename, data) 
    } 
} 

以供參考,在這裏是做同樣的一個文件夾一些代碼。它假定我們正在當前工作表的父文件夾中操作,並且需要文件夾 對象用於新的或現有的文件夾。

// Get folder under current folder. Create it if it does not exist 
function getOrCreateFolder(csvFolderName) { 
    var thisFileId = SpreadsheetApp.getActive().getId(); 
    var thisFile = DriveApp.getFileById(thisFileId); 
    var parentFolder = thisFile.getParents().next(); 
    try { 
    // csvFolderName is unique, so we can get first element of iterator 
    var folder = parentFolder.getFoldersByName(csvFolderName).next(); 
    // asking for the folder's name ensures we get an error if the 
    // folder doesn't exist. I've found I don't necessarily catch 
    // an error from getFoldersByName if csvFolderName doesn't exist. 
    fname = folder.getName() 
    } catch(e) { 
    var folder = parentFolder.createFolder(csvFolderName); 
    } 
    return folder 
} 
相關問題