Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 如何使用应用程序脚本覆盖内容超过10MB的文件?_File_Google Apps Script_Google Drive Api - Fatal编程技术网

File 如何使用应用程序脚本覆盖内容超过10MB的文件?

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

我有一个驱动器文件夹,里面有几个g-sheet文件(每个文件都大于100MB)。 我想用最新文件的内容覆盖最旧文件的内容。 然后丢弃所有文件,但最旧的文件除外

我有两个问题:

  • 文件“代码”中出现异常
  • 我的内容可以大于10MB
  • 这是一条死胡同吗

    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将一个文件的内容附加到另一个文件。