我尝试使用谷歌应用脚本在谷歌驱动器中创建一个大文件。此文件合并了三个文件。我的代码是:
function unirFicheros(idDirectorio,nombreFichero, numeroFicheros){
var nombreTotal=nombreFichero;
var strTotal="";
var docTotal = DocsList.createFile(nombreTotal, strTotal);
Utilities.sleep(5000);
Logger.log("SE CREA TOTAL: " + numeroFicheros);
for(var i=1;i<=numeroFicheros;i++){
Logger.log("ENTRO EN EL FOR");
var nombrePartes=nombreFichero+i+".csv";
Logger.log("NOMBREPARTES: " + nombrePartes);
var id=listFilesInFolder(idDirectorio,nombrePartes);
var docPartes = DocsList.getFileById(id);
Utilities.sleep(5000);
Logger.log("Existe el fichero");
var str = docPartes.getContentAsString();
Logger.log("UNE LA CADENA");
strTotal = strTotal+str;
Utilities.sleep(5000);
docTotal.replace(strTotal);
Utilities.sleep(30000);
}
return docTotal;
}
发生错误是:
Ejecuciónfallida:El archivo backup_actuaciones_PROD superaeltamañodearchivoamáximoallowido。 (执行失败:文件backup_actuaciones_PROD文件大小超过允许的最大值。)
我试图生成没有格式的文件,因为互联网说这些文件更大。实际上,我的文件有44 MB,但我需要427 MB。
问候。
答案 0 :(得分:0)
DriveApp.createFile()
包含一条说明...... Throws an exception if content is larger than 10MB
。我希望此限制也会影响DocsList.createFile()
和DocsList.replace()
。
通过避免处理docTotal
的全部内容,您可能会获得更好的结果。使用File.append()
添加每个文件的内容:
...
var str = docPartes.getContentAsString();
Logger.log("UNE LA CADENA");
docTotal.append(str);
...