使用以下脚本创建/追加文件的行。在Google-Online-Environment中正常工作,我可以查看该文件并查看如何追加行。但是,通过我的电脑上的Google Drive-Folder查看文件只能给我第一行(创建时写的那一行)。其他人只在关闭后出现(等待2小时)并再次启动我的电脑上的谷歌驱动器。那么我可以在我的脚本中做些什么来“刷新”以查看我的电脑上的更改?
function appendFile (textArea) { // run by timer
var d=new Date();
var id;
if ((id=ScriptProperties.getProperty ("fileId"))==null) {
var f=DocsList.createFile("List", "Started at "+d+"\n");
ScriptProperties.setProperty ("fileId", f.getId());
}
else {
var f=DocsList.getFileById(id);
f.append("Appended "+d+"\n");
if (textArea!=undefined) {
textArea.setText ("id="+id+"\n"+"name="+f.getName()+"\n"+"date="+d+"\nContents="+f.getContentAsString());
}
}
}
答案 0 :(得分:1)
我遇到了类似的问题,但方向相反。 (我正在更新我的PC上的文件,将其复制到云端硬盘,并期望它同步到云端,因此应用程序脚本可以在其上工作。)我发现我必须删除并重新创建文件才能将其转换为同步。同样的方法似乎在这里起作用。
我已注释掉代码的Ui部分,替换日志以观察操作,并将其修改为 trash,然后在每次更新后重新创建文本文件 。丑陋但有效 - PC的GDrive文件立即更新。
function appendFile (/*textArea*/) { // run by timer
var d=new Date();
var id;
if ((id=ScriptProperties.getProperty ("fileId"))==null) {
var f=DocsList.createFile("List", "Started at "+d+"\n");
ScriptProperties.setProperty ("fileId", f.getId());
}
else {
var f=DocsList.getFileById(id);
var text = String.concat(f.getContentAsString(),
"Appended "+d+"\n");
f.setTrashed(true);
f=DocsList.createFile("List",text);
ScriptProperties.setProperty ("fileId", f.getId());
// if (textArea!=undefined) {
// textArea.setText ("id="+id+"\n"+"name="+f.getName()+"\n"+"date="+d+"\nContents="+f.getContentAsString());
// }
Logger.log("id="+id+"\n"+"name="+f.getName()+"\n"+"date="+d+"\nContents="+f.getContentAsString());
}
}
剩下的问题: