Google 云端硬盘中的文件。您可以通过 DriveApp
访问或创建文件。
// Trash every untitled spreadsheet that hasn't been updated in a week. const files = DriveApp.getFilesByName('Untitled spreadsheet'); while (files.hasNext()) { const file = files.next(); if (new Date() - file.getLastUpdated() > 7 * 24 * 60 * 60 * 1000) { file.setTrashed(true); } }
方法
详细文档
addCommenter(emailAddress)
将指定用户添加到 File
的评论者列表中。如果用户已在观看者名单中,此方法会将用户从观看者名单中移除。
const files = DriveApp.getFilesByName('Test'); // Loops through the files while (files.hasNext()) { const file = files.next(); file.addCommenter('hello@example.com'); }
参数
名称 | 类型 | 说明 |
---|---|---|
emailAddress | String | 要添加的用户的电子邮件地址。 |
返回
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive
addCommenter(user)
将指定用户添加到 File
的评论者列表中。如果用户已在观看者名单中,此方法会将用户从观看者名单中移除。
// Gets a list of all files in Google Drive with the given name. // TODO(developer): Replace the file name with your own. const files = DriveApp.getFilesByName('Test'); // Adds the active user as a commenter. while (files.hasNext()) { const file = files.next(); file.addCommenter(Session.getActiveUser()); }
参数
名称 | 类型 | 说明 |
---|---|---|
user | User | 要添加的用户的表示法。 |
返回
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive
addCommenters(emailAddresses)
将给定用户数组添加到 File
的评论者列表中。如果任何用户已在观看者列表中,此方法会将其从观看者列表中移除。
// Gets a list of all files in Google Drive with the given name. // TODO(developer): Replace the file name with your own. const files = DriveApp.getFilesByName('Test'); while (files.hasNext()) { const file = files.next(); // TODO(developer): Replace 'cloudysanfrancisco@gmail.com' and // 'baklavainthebalkans@gmail.com' with the email addresses to add as // commenters. const emails = [ 'cloudysanfrancisco@gmail.com', 'baklavainthebalkans@gmail.com', ]; console.log(file.addCommenters(emails)); }
参数
名称 | 类型 | 说明 |
---|---|---|
emailAddresses | String[] | 要添加的用户的电子邮件地址的数组。 |
返回
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive
addEditor(emailAddress)
addEditor(user)
addEditors(emailAddresses)
addViewer(emailAddress)
addViewer(user)
addViewers(emailAddresses)
getAccess(email)
获取向特定用户授予的权限。该方法不支持返回 Google 群组的权限或通过 Google 群组继承的权限。
参数
名称 | 类型 | 说明 |
---|---|---|
email | String | 应检查权限的用户的电子邮件地址。不支持 Google 群组。 |
返回
Permission
- 向用户授予的权限。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive.readonly
-
https://www.googleapis.com/auth/drive
getAccess(user)
获取向特定用户授予的权限。该方法不支持返回 Google 群组的权限或通过 Google 群组继承的权限。
参数
名称 | 类型 | 说明 |
---|---|---|
user | User | 应检查权限的用户的表示法。 |
返回
Permission
- 向用户授予的权限。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive.readonly
-
https://www.googleapis.com/auth/drive
getAs(contentType)
将此对象内的数据作为转换为指定内容类型的 blob 返回。此方法会向文件名添加相应的扩展名,例如“myfile.pdf”。不过,它假定文件名最后一个英文句点(如果有)后面的部分是应替换的现有扩展名。因此,“ShoppingList.12.25.2014”会变为“ShoppingList.12.25.pdf”。
如需查看转化每日配额,请参阅 Google 服务的配额。新创建的 Google Workspace 网域可能会暂时受到更严格的配额限制。
参数
名称 | 类型 | 说明 |
---|---|---|
contentType | String | 要转换到的 MIME 类型。对于大多数 blob,'application/pdf' 是唯一有效的选项。对于 BMP、GIF、JPEG 或 PNG 格式的图片,'image/bmp' 、'image/gif' 、'image/jpeg' 或 'image/png' 中的任何一种也有效。对于 Google 文档,'text/markdown' 也有效。 |
返回
Blob
- 数据(以 blob 的形式)。
getBlob()
getDateCreated()
getDescription()
getDownloadUrl()
获取可用于下载文件的网址。只有拥有在 Google 云端硬盘中打开文件权限的用户才能访问该网址。您可以在浏览器中使用此网址下载文件,但无法使用 UrlFetchApp
提取文件。如果您希望在脚本中使用文件的内容,请使用 getBlob()
。
// Gets a list of all files in Google Drive with the given name. // TODO(developer): Replace the file name with your own. const files = DriveApp.getFilesByName('Test'); // Loops through the files and logs the download URLs to the console. while (files.hasNext()) { const file = files.next(); console.log(file.getDownloadUrl()); }
返回
String
- 可用于下载文件的网址。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive.readonly
-
https://www.googleapis.com/auth/drive
getEditors()
获取此 File
的编辑器列表。如果执行脚本的用户没有对 File
的修改权限,此方法会返回一个空数组。
// Gets a list of all files in Google Drive with the given name. // TODO(developer): Replace the file name with your own. const files = DriveApp.getFilesByName('Test'); // Loops through the files. while (files.hasNext()) { const file = files.next(); // Adds the email addresses in the array as editors of each file. // TODO(developer): Replace 'cloudysanfrancisco@gmail.com' // and 'baklavainthebalkans@gmail.com' with valid email addresses. file.addEditors([ 'cloudysanfrancisco@gmail.com', 'baklavainthebalkans@gmail.com', ]); // Gets a list of the file editors. const editors = file.getEditors(); // For each file, logs the editors' email addresses to the console. for (const editor of editors) { console.log(editor.getEmail()); } }
返回
User[]
- 如果用户对此 File
拥有修改权限,则返回编辑者列表。如果用户没有修改权限,则返回空数组。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive.readonly
-
https://www.googleapis.com/auth/drive
getId()
getLastUpdated()
getMimeType()
获取文件的 MIME 类型。
// Gets a list of all files in Google Drive with the given name. // TODO(developer): Replace the file name with your own. const files = DriveApp.getFilesByName('Test'); // Loops through the files and logs the MIME type to the console. while (files.hasNext()) { const file = files.next(); console.log(file.getMimeType()); }
返回
String
- 文件的 MIME 类型。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive.readonly
-
https://www.googleapis.com/auth/drive
getName()
getOwner()
获取文件所有者。
// Gets a list of all files in Google Drive with the given name. // TODO(developer): Replace the file name with your own. const files = DriveApp.getFilesByName('Test'); // Loops through the files and logs the names of the file owners to the console. while (files.hasNext()) { const file = files.next(); console.log(file.getOwner().getName()); }
返回
User
- 文件所有者。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive.readonly
-
https://www.googleapis.com/auth/drive
getParents()
获取 File
的直接父级文件夹的集合。
返回
FolderIterator
- File
的直接父级文件夹的集合
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive.readonly
-
https://www.googleapis.com/auth/drive
getResourceKey()
getSecurityUpdateEligible()
获取此 File
是否符合条件,以应用安全更新(在使用链接共享时,需要使用资源密钥才能访问)。
云端硬盘需要资源密钥才能访问使用链接共享的部分文件或文件夹。此变更是安全更新的一部分。系统会默认为符合条件的文件和文件夹开启更新。如需为符合条件的文件开启或关闭资源键要求,请使用 setSecurityUpdateEnabled
。
详细了解 Google 云端硬盘安全更新。
返回
Boolean
- 是否可以对 File
应用资源键要求。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive.readonly
-
https://www.googleapis.com/auth/drive
getSecurityUpdateEnabled()
获取此 File
在使用链接共享时是否需要资源键才能访问。默认情况下,系统会为符合条件的文件和文件夹启用此要求。如需为符合条件的文件开启或关闭资源密钥要求,请使用
setSecurityUpdateEnabled
。
详细了解 Google 云端硬盘安全更新。
返回
Boolean
- 是否为此 File
启用了资源键要求。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive.readonly
-
https://www.googleapis.com/auth/drive
getSharingAccess()
getSharingPermission()
获取授予可以访问 File
的用户(除了已明确授予访问权限的任何个人用户)的权限。
返回
Permission
- 向可以访问 File
的用户授予的权限
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive.readonly
-
https://www.googleapis.com/auth/drive
getSize()
getTargetId()
如果这是快捷方式,则返回其指向的项的 ID。
否则,它会返回 null
。
// The ID of the file for which to make a shortcut and the ID of // the folder to which you want to add the shortcut. // TODO(developer): Replace the file and folder IDs with your IDs. const fileId = 'abc123456'; const folderId = 'xyz987654'; // Gets the folder to add the shortcut to. const folder = DriveApp.getFolderById(folderId); // Creates a shortcut of the file and moves it to the specified folder. const shortcut = DriveApp.createShortcut(fileId).moveTo(folder); // Logs the target ID of the shortcut. console.log(`${shortcut.getName()}=${shortcut.getTargetId()}`);
返回
String
- 目标项 ID。
getTargetMimeType()
如果这是快捷方式,则返回其指向的项的 MIME 类型。
否则,它会返回 null
。
// The ID of the file for which to make a shortcut and the ID of // the folder to which you want to add the shortcut. // TODO(developer): Replace the file and folder IDs with your IDs. const fileId = 'abc123456'; const folderId = 'xyz987654'; // Gets the folder to add the shortcut to. const folder = DriveApp.getFolderById(folderId); // Creates a shortcut of the file and moves it to the specified folder. const shortcut = DriveApp.createShortcut(fileId).moveTo(folder); // Logs the MIME type of the file that the shortcut points to. console.log(`MIME type of the shortcut: ${shortcut.getTargetMimeType()}`);
返回
String
- 目标项 MIME 类型。
getTargetResourceKey()
如果文件是快捷方式,则返回其指向的项的资源键。资源键是您需要传递的额外参数,用于访问已使用链接共享的文件。
如果文件不是快捷方式,则返回 null
。
// Gets a file by its ID. // TODO(developer): Replace 'abc123456' with your file ID. const file = DriveApp.getFileById('abc123456'); // If the file is a shortcut, returns the resource key of the file that it // points to. console.log(file.getTargetResourceKey());
返回
String
- 目标项的资源键,如果文件不是快捷方式,则为 null
。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive.readonly
-
https://www.googleapis.com/auth/drive
getThumbnail()
获取文件的缩略图图片,如果不存在缩略图,则返回 null
。
// Gets a list of all files in Google Drive with the given name. // TODO(developer): Replace the file name with your own. const files = DriveApp.getFilesByName('Test'); // Loops through the files. while (files.hasNext()) { const file = files.next(); // Logs the thumbnail image for each file to the console as a blob, // or null if no thumbnail exists. console.log(file.getThumbnail()); }
返回
Blob
- 文件的缩略图。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive.readonly
-
https://www.googleapis.com/auth/drive
getUrl()
getViewers()
获取此 File
的查看者和评论者的列表。如果执行脚本的用户无权修改 File
,此方法会返回一个空数组。
// Gets a list of all files in Google Drive with the given name. // TODO(developer): Replace the file name with your own. const files = DriveApp.getFilesByName('Test'); // Loops through the files. while (files.hasNext()) { const file = files.next(); // For each file, logs the viewers' email addresses to the console. const viewers = file.getViewers(); for (const viewer of viewers) { console.log(viewer.getEmail()); } }
返回
User[]
- 如果用户对此 File
拥有修改权限,则返回查看者和评论者的列表。如果用户没有修改权限,则返回空数组。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive.readonly
-
https://www.googleapis.com/auth/drive
isStarred()
isTrashed()
makeCopy()
创建文件的副本。
// Gets a list of all files in Google Drive with the given name. // TODO(developer): Replace the file name with your own. const files = DriveApp.getFilesByName('Test'); // Loops through the files. while (files.hasNext()) { const file = files.next(); // Creates a copy of each file and logs the file name to the console. console.log(file.makeCopy().getName()); }
返回
File
- 新副本。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive
makeCopy(destination)
在目标目录中创建文件的副本。
// Gets a list of all files in Google Drive with the given name. // TODO(developer): Replace the file name with your own. const files = DriveApp.getFilesByName('Test'); // Loops through the files. while (files.hasNext()) { const file = files.next(); // Creates a copy of each file and adds it to the specified folder. // TODO(developer): Replace the folder ID with your own. const destination = DriveApp.getFolderById('123456abcxyz'); const copiedFile = file.makeCopy(destination); // Logs the file names to the console. console.log(copiedFile.getName()); }
参数
名称 | 类型 | 说明 |
---|---|---|
destination | Folder | 要将文件复制到的目录。 |
返回
File
- 新副本。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive
makeCopy(name)
创建文件的副本,并使用提供的名称对其进行命名。
// Gets a list of all files in Google Drive with the given name. // TODO(developer): Replace the file name with your own. const files = DriveApp.getFilesByName('Test'); // Loops through the files. while (files.hasNext()) { const file = files.next(); // Creates a copy of each file and sets the name to 'Test-Copy.' const filename = file.makeCopy('Test-Copy'); // Logs the copied file's name to the console. console.log(filename.getName()); }
参数
名称 | 类型 | 说明 |
---|---|---|
name | String | 应应用于新副本的文件名。 |
返回
File
- 新副本。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive
makeCopy(name, destination)
在目标目录中创建文件的副本,并使用提供的名称为其命名。
// Gets a list of all files in Google Drive with the given name. // TODO(developer): Replace the file name with your own. const files = DriveApp.getFilesByName('Test'); // Loops through the files. while (files.hasNext()) { const file = files.next(); // Creates a copy of each file, sets the file name, and adds the copied file // to the specified folder. // TODO(developer): Replace the folder ID with your own. const destination = DriveApp.getFolderById('123456abcxyz'); const copiedFile = file.makeCopy('Test-Copy', destination); // Logs the file names to the console. console.log(copiedFile.getName()); }
参数
名称 | 类型 | 说明 |
---|---|---|
name | String | 应应用于新副本的文件名。 |
destination | Folder | 要将文件复制到的目录。 |
返回
File
- 新副本。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive
moveTo(destination)
removeCommenter(emailAddress)
从 File
的评论者列表中移除指定用户。如果用户属于具有一般访问权限的用户类别(例如,File
与用户的整个网域共享),此方法不会阻止用户访问 File
。
// Gets a list of all files in Google Drive with the given name. // TODO(developer): Replace the file name with your own. const files = DriveApp.getFilesByName('Test'); // Loops through the files. while (files.hasNext()) { const file = files.next(); // Removes the given user from the list of commenters for each file. // TODO(developer): Replace the email with the email of the user you want to // remove. file.removeCommenter('cloudysanfrancisco@gmail.com'); }
参数
名称 | 类型 | 说明 |
---|---|---|
emailAddress | String | 要移除的用户的电子邮件地址。 |
返回
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive
removeCommenter(user)
从 File
的评论者列表中移除指定用户。如果用户属于具有一般访问权限的用户类别(例如,File
与用户的整个网域共享),此方法不会阻止用户访问 File
。
// Gets a list of all files in Google Drive with the given name. // TODO(developer): Replace the file name with your own. const files = DriveApp.getFilesByName('Test'); // Loops through the files. while (files.hasNext()) { const file = files.next(); // Removes the given user from the list of commenters for each file. console.log(file.removeCommenter(Session.getActiveUser())); }
参数
名称 | 类型 | 说明 |
---|---|---|
user | User | 要移除的用户的表示法。 |
返回
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive
removeEditor(emailAddress)
removeEditor(user)
removeViewer(emailAddress)
removeViewer(user)
revokePermissions(emailAddress)
revokePermissions(user)
setContent(content)
使用指定的替换项覆盖文件的内容。如果 content
大于 10MB,则会抛出异常。
// Creates a text file with the content 'Hello, world!' const file = DriveApp.createFile('New Text File', 'Hello, world!'); // Logs the content of the text file to the console. console.log(file.getBlob().getDataAsString()); // Updates the content of the text file to 'Updated text!' file.setContent('Updated text!'); // Logs content of the text file to the console. console.log(file.getBlob().getDataAsString());
参数
名称 | 类型 | 说明 |
---|---|---|
content | String | 文件的新内容。 |
返回
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive
setDescription(description)
setName(name)
setOwner(emailAddress)
setOwner(user)
setSecurityUpdateEnabled(enabled)
setSharing(accessType, permissionType)
除了已明确授予访问权限的任何个人用户之外,还设置哪类用户可以访问 File
以及授予这些用户哪些权限。
// Creates a folder that anyone on the Internet can read from and write to. // (Domain administrators can prohibit this setting for users of a Google // Workspace domain.) const folder = DriveApp.createFolder('Shared Folder'); folder.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT);
参数
名称 | 类型 | 说明 |
---|---|---|
accessType | Access | 哪类用户应能够访问 File |
permissionType | Permission | 应向有权访问 File 的用户授予的权限 |
返回
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/drive