File 如何使用应用程序脚本覆盖内容超过10MB的文件?
我有一个驱动器文件夹,里面有几个g-sheet文件(每个文件都大于100MB)。 我想用最新文件的内容覆盖最旧文件的内容。 然后丢弃所有文件,但最旧的文件除外 我有两个问题:File 如何使用应用程序脚本覆盖内容超过10MB的文件?,file,google-apps-script,google-drive-api,File,Google Apps Script,Google Drive Api,我有一个驱动器文件夹,里面有几个g-sheet文件(每个文件都大于100MB)。 我想用最新文件的内容覆盖最旧文件的内容。 然后丢弃所有文件,但最旧的文件除外 我有两个问题: 文件“代码”中出现异常 我的内容可以大于10MB 这是一条死胡同吗 function deleteOldSheets() { var df = DriveApp.getFolderById("1haqAtxk7ZeXF9ayEbRFIf7yGi3KBu4S_"); var arr = new
function deleteOldSheets() {
var df = DriveApp.getFolderById("1haqAtxk7ZeXF9ayEbRFIf7yGi3KBu4S_");
var arr = new Array();
var files = df.getFiles();
while( files.hasNext() ) {
var f = files.next();
arr.push( [ [ f.getId() ] , [ f.getLastUpdated() ] ] );
}
if (arr.length < 2){
return;
}
arr.sort( sortFunction );
var mediaData = DriveApp.getFileById(arr[0][0]).getBlob().getDataAsString();
DriveApp.getFileById(arr[arr.length-1][0]).setContent(mediaData);
for( var i=0 ; i<arr.length-1 ; i++ ){
DriveApp.getFileById( arr[i][0] ).setTrashed( true );
}
};
function sortFunction( a , b ) {
var aDate = new Date(a[1]);
var bDate = new Date(b[1]);
if ( aDate === bDate ) return 0;
else if ( aDate < bDate ) return 1;
else return -1;
};
函数deleteOldSheets(){
var df=DriveApp.getFolderById(“1haqatxk7zexf9ayebrfi7ygi3kbu4s”);
var arr=新数组();
var files=df.getFiles();
while(files.hasNext()){
var f=files.next();
arr.push([[f.getId()],[f.getLastUpdated()]);
}
如果(arr.length<2){
返回;
}
arr.sort(sort函数);
var mediaData=DriveApp.getFileById(arr[0][0]).getBlob().getDataAsString();
DriveApp.getFileById(arr[arr.length-1][0]).setContent(mediaData);
对于(var i=0;i您所说的“几个g-sheet文件(每个都大于100MB)”是什么意思。Google sheet文件的大小为0 MB。您不能以非数字的方式比较日期。您可以比较valueOf或getTime@Cooper但是上面写着:newdate(f.getlastdated())
。你是什么意思?@Rubén不确定我是否理解你的评论。请看我的截图。另一方面,如果你的文件是Google Sheets电子表格,则应使用电子表格应用程序和相应的方法,而不是DriveApp将一个文件的内容附加到另一个文件。