Apps脚本高级驱动器API服务 - newFile()方法不创建文件

时间:2015-02-10 04:41:49

标签: javascript file google-apps-script google-drive-api

Advanced Drive API Service的newFile()方法似乎返回了一个对象,但未在我的Google云端硬盘中创建文件。我找不到任何相关的文档。这是我尝试的代码,以及我得到的结果。

function makeNewDoc() { 

  var file = Drive.newFile();
  Logger.log('file ' + file);

  file = {one: "value One"};
  Logger.log('file ' + file);

  Logger.log("file['one'] " + file['one']);
};

LOGS打印这个:

  

file {}

     

file [object Object]

     

file ['one'] value One

我尝试在newFile()括号内添加一个字符串:

function makeNewDoc() { 

  var file = Drive.newFile("some text");
  Logger.log('file ' + file);

  file = {one: "value One"};
  Logger.log('file ' + file);

  Logger.log("file['one'] " + file['one']);

  for (var key in file) {
     Logger.log('key: ' + key);
     Logger.log('value: ' + file[key]);
  };
};

这不会产生错误,但它也没有做任何事情。或者我不知道它在做什么。

我多次运行代码后多次检查了我的Google驱动器,我的云端硬盘中从未有过新文件。

newFile()方法返回一个对象,我可以将新属性放入,然后枚举。但除此之外,我不知道它做了什么,或者它有什么用途。

所以,如果有人能告诉我Drive API的newFile()方法是什么,我真的很想知道。

2 个答案:

答案 0 :(得分:4)

以下是如何使用高级Drive服务制作新文档的示例

function createNewDoc(title,content,folderId){

  var content = content || "";

  // neither kind or mimeType properties seem to be necessary
  // for Doc to be created, but are being included anyhow 
  var resource = {
    title: title,
    parents: [
      {
        "id": folderId,
        "kind": "drive#fileLink"
      }
    ],
    mimeType: 'application/vnd.google-apps.document'
  };

  var blob = Utilities.newBlob(content);
  var newfile = Drive.Files.insert(resource, blob, {"convert":"true"});

  return newFile;
}

答案 1 :(得分:1)

我使用了答案代码,将blob创建为HTML时出现问题。下面的代码将HTML作为字符串转换为要插入到文档中的blob。

  var content = '<!DOCTYPE html><html><body><b>Hello</b></body><html>'


  var blob = Utilities.newBlob("").setDataFromString(content,'UTF-8').setContentType("text/html")
  var newfile = Drive.Files.insert(resource, blob, {"convert":"true"});