Drive Service

云端硬盘

此服务可让脚本在 Google 云端硬盘中创建、查找和修改文件和文件夹。虽然内置的 Google 云端硬盘服务更易于使用,但它存在一些限制。 如需使用最新功能并获得最新支持,以及访问共享云端硬盘中的文件或文件夹,请使用高级云端硬盘服务

如果您的脚本使用标准 Cloud 项目而非默认 Cloud 项目,您必须手动开启 Drive API。在标准 Cloud 项目中,启用 Drive API:

开启 Drive API

以下代码示例展示了如何记录用户“我的云端硬盘”文件夹中每个文件的名称:
// Logs the name of every file in the user's Drive.
var files = DriveApp.getFiles();
while (files.hasNext()) {
  var file = files.next();
  console.log(file.getName());
}

名称简介
Access一个枚举,用于表示可以访问文件或文件夹的用户类别(除了已明确获得访问权限的任何个人用户之外)。
DriveApp允许脚本在 Google 云端硬盘中创建、查找和修改文件和文件夹。
FileGoogle 云端硬盘中的文件。
FileIterator一种迭代器,可让脚本迭代处理可能包含大量文件的集合。
FolderGoogle 云端硬盘中的文件夹。
FolderIterator一个对象,允许脚本迭代可能包含大量文件夹的集合。
Permission一个枚举,表示授予可以访问文件或文件夹的用户的权限,不包括已明确授予访问权限的任何个人用户。
User与 Google 云端硬盘中的文件关联的用户。

Access

属性

属性类型说明
ANYONEEnum互联网上的任何人都可以找到和访问。
ANYONE_WITH_LINKEnum知道链接的任何人都可以访问。
DOMAINEnum您网域中的用户可以找到和访问。
DOMAIN_WITH_LINKEnum您网域中知道链接的人可以使用。
PRIVATEEnum只有被明确授予权限的人才能访问。

DriveApp

属性

属性类型说明
AccessAccess一个枚举,用于表示可以访问文件或文件夹的用户类别(除了已明确获得访问权限的任何个人用户之外)。
PermissionPermission一个枚举,表示授予可以访问文件或文件夹的用户的权限,不包括已明确授予访问权限的任何个人用户。

方法

方法返回类型简介
continueFileIterator(continuationToken)FileIterator使用来自之前迭代器的继续令牌恢复文件迭代。
continueFolderIterator(continuationToken)FolderIterator使用之前迭代器的继续令牌恢复文件夹迭代。
createFile(blob)File根据任意数据的指定 Blob 在用户云端硬盘的根目录中创建文件。
createFile(name, content)File在用户云端硬盘的根目录中创建一个具有指定名称和内容的文本文件。
createFile(name, content, mimeType)File在用户的 Google 云端硬盘根目录中创建一个具有指定名称、内容和 MIME 类型的文件。
createFolder(name)Folder在用户的云端硬盘根目录中创建一个具有指定名称的文件夹。
createShortcut(targetId)File创建指向所提供的云端硬盘内容 ID 的快捷方式,并返回该快捷方式。
createShortcutForTargetIdAndResourceKey(targetId, targetResourceKey)File创建指向所提供的云端硬盘内容 ID 和资源密钥的快捷方式,并返回该快捷方式。
enforceSingleParent(value)void针对影响商品父项的所有调用启用或停用 enforceSingleParent 行为。
getFileById(id)File获取具有指定 ID 的文件。
getFileByIdAndResourceKey(id, resourceKey)File获取具有指定 ID 和资源密钥的文件。
getFiles()FileIterator获取用户云端硬盘中的所有文件。
getFilesByName(name)FileIterator获取用户云端硬盘中具有指定名称的所有文件的集合。
getFilesByType(mimeType)FileIterator获取用户云端硬盘中具有指定 MIME 类型的所有文件的集合。
getFolderById(id)Folder获取具有指定 ID 的文件夹。
getFolderByIdAndResourceKey(id, resourceKey)Folder获取具有指定 ID 和资源密钥的文件夹。
getFolders()FolderIterator获取用户云端硬盘中的所有文件夹的集合。
getFoldersByName(name)FolderIterator获取用户云端硬盘中具有指定名称的所有文件夹的集合。
getRootFolder()Folder获取用户云端硬盘根目录下的文件夹。
getStorageLimit()Integer获取用户可在云端硬盘中存储的字节数。
getStorageUsed()Integer获取用户当前在云端硬盘中存储的字节数。
getTrashedFiles()FileIterator获取相应用户的 Google 云端硬盘回收站中的所有文件。
getTrashedFolders()FolderIterator获取用户云端硬盘回收站中所有文件夹的集合。
searchFiles(params)FileIterator获取用户云端硬盘中与指定搜索条件匹配的所有文件的集合。
searchFolders(params)FolderIterator获取用户云端硬盘中与指定搜索条件匹配的所有文件夹的集合。

File

方法

方法返回类型简介
addCommenter(emailAddress)File将指定用户添加到 File 的评论者列表中。
addCommenter(user)File将指定用户添加到 File 的评论者列表中。
addCommenters(emailAddresses)File将指定的用户数组添加到 File 的评论者列表中。
addEditor(emailAddress)File将指定用户添加到 File 的编辑者列表中。
addEditor(user)File将指定用户添加到 File 的编辑者列表中。
addEditors(emailAddresses)File将指定的用户数组添加到 File 的编辑者列表中。
addViewer(emailAddress)File将指定用户添加到 File 的观看者列表中。
addViewer(user)File将指定用户添加到 File 的观看者列表中。
addViewers(emailAddresses)File将指定的用户数组添加到 File 的观看者列表中。
getAccess(email)Permission获取授予特定用户的权限。
getAccess(user)Permission获取授予特定用户的权限。
getAs(contentType)Blob以转换为指定内容类型的 blob 形式返回此对象内的数据。
getBlob()Blob以 blob 形式返回此对象内的数据。
getDateCreated()Date获取 File 的创建日期。
getDescription()String获取 File 的说明。
getDownloadUrl()String获取可用于下载文件的网址。
getEditors()User[]获取相应 File 的编辑者列表。
getId()String获取 File 的 ID。
getLastUpdated()Date获取 File 的上次更新日期。
getMimeType()String获取文件的 MIME 类型。
getName()String获取 File 的名称。
getOwner()User获取文件所有者。
getParents()FolderIterator获取 File 的直接父文件夹的集合。
getResourceKey()String获取 File 的资源密钥,该密钥是访问通过链接共享的必需密钥。
getSecurityUpdateEligible()Boolean获取此 File 是否符合应用安全更新的条件。如果应用安全更新,则在通过链接分享此 File 时,需要使用资源密钥才能访问。
getSecurityUpdateEnabled()Boolean获取相应 File 在通过链接共享时是否需要资源密钥才能访问。
getSharingAccess()Access获取哪些类别的用户可以访问 File,明确获得访问权限的任何个人用户除外。
getSharingPermission()Permission获取已授予可访问 File 的用户的权限,明确授予访问权限的任何个人用户除外。
getSize()Integer获取用于在云端硬盘中存储 File 的字节数。
getTargetId()String如果这是快捷方式,则返回其指向的商品的 ID。
getTargetMimeType()String如果这是快捷方式,则返回其指向的商品的 MIME 类型。
getTargetResourceKey()String如果文件是快捷方式,则返回其指向的资源的资源键。
getThumbnail()Blob|null获取文件的缩略图,如果没有缩略图,则返回 null
getUrl()String获取可用于在 Google 应用(例如 Google 云端硬盘或 Google 文档)中打开 File 的网址。
getViewers()User[]获取相应 File 的查看者和评论者列表。
isShareableByEditors()Boolean用于确定对 File 具有修改权限的用户是否可以与其他用户共享或更改权限。
isStarred()Boolean确定 File 是否已在用户的云端硬盘中加星标。
isTrashed()Boolean确定 File 是否位于用户的云端硬盘回收站中。
makeCopy()File创建文件的副本。
makeCopy(destination)File在目标目录中创建文件的副本。
makeCopy(name)File创建文件的副本,并使用提供的名称为其命名。
makeCopy(name, destination)File在目标目录中创建文件的副本,并使用提供的名称为其命名。
moveTo(destination)File将相应项移至指定的目标文件夹。
removeCommenter(emailAddress)FileFile 的评论者列表中移除指定用户。
removeCommenter(user)FileFile 的评论者列表中移除指定用户。
removeEditor(emailAddress)FileFile 的编辑者列表中移除指定用户。
removeEditor(user)FileFile 的编辑者列表中移除指定用户。
removeViewer(emailAddress)FileFile 的观看者和评论者列表中移除指定用户。
removeViewer(user)FileFile 的观看者和评论者列表中移除指定用户。
revokePermissions(emailAddress)File撤消授予指定用户的 File 访问权限。
revokePermissions(user)File撤消授予指定用户的 File 访问权限。
setContent(content)File使用给定的替换内容覆盖文件内容。
setDescription(description)FileFile 设置说明。
setName(name)File设置 File 的名称。
setOwner(emailAddress)File更改 File 的所有者。
setOwner(user)File更改 File 的所有者。
setSecurityUpdateEnabled(enabled)File设置 File 在通过链接共享时是否需要资源密钥才能访问。
setShareableByEditors(shareable)File设置是否允许对 File 拥有修改权限的用户与其他用户共享或更改权限。
setSharing(accessType, permissionType)File设置哪些类别的用户可以访问 File,以及除了明确获得访问权限的任何个人用户之外,这些用户还被授予了哪些权限。
setStarred(starred)File设置 File 是否已在用户的云端硬盘中加星标。
setTrashed(trashed)File设置 File 是否位于用户的云端硬盘回收站中。

FileIterator

方法

方法返回类型简介
getContinuationToken()String获取可用于稍后恢复此迭代的令牌。
hasNext()Boolean确定调用 next() 是否会返回商品。
next()File获取文件或文件夹集合中的下一个项。

Folder

方法

方法返回类型简介
addEditor(emailAddress)Folder将指定用户添加到 Folder 的编辑者列表中。
addEditor(user)Folder将指定用户添加到 Folder 的编辑者列表中。
addEditors(emailAddresses)Folder将指定的用户数组添加到 Folder 的编辑者列表中。
addViewer(emailAddress)Folder将指定用户添加到 Folder 的观看者列表中。
addViewer(user)Folder将指定用户添加到 Folder 的观看者列表中。
addViewers(emailAddresses)Folder将指定的用户数组添加到 Folder 的观看者列表中。
createFile(blob)File根据给定的任意数据 Blob 在当前文件夹中创建一个文件。
createFile(name, content)File在当前文件夹中创建一个具有指定名称和内容的文本文件。
createFile(name, content, mimeType)File在当前文件夹中创建一个具有指定名称、内容和 MIME 类型的文件。
createFolder(name)Folder在当前文件夹中创建一个具有指定名称的文件夹。
createShortcut(targetId)File创建指向所提供的云端硬盘内容 ID 的快捷方式,并返回该快捷方式。
createShortcutForTargetIdAndResourceKey(targetId, targetResourceKey)File创建指向所提供的云端硬盘内容 ID 和资源密钥的快捷方式,并返回该快捷方式。
getAccess(email)Permission获取授予特定用户的权限。
getAccess(user)Permission获取授予特定用户的权限。
getDateCreated()Date获取 Folder 的创建日期。
getDescription()String获取 Folder 的说明。
getEditors()User[]获取相应 Folder 的编辑者列表。
getFiles()FileIterator获取当前文件夹的所有子级文件组成的集合。
getFilesByName(name)FileIterator获取当前文件夹的所有子文件(具有指定名称)的集合。
getFilesByType(mimeType)FileIterator获取当前文件夹的所有子文件(具有指定 MIME 类型)的集合。
getFolders()FolderIterator获取当前文件夹的所有子文件夹的集合。
getFoldersByName(name)FolderIterator获取当前文件夹的所有子文件夹的集合,这些子文件夹具有指定名称。
getId()String获取 Folder 的 ID。
getLastUpdated()Date获取 Folder 的上次更新日期。
getName()String获取 Folder 的名称。
getOwner()User获取相应 Folder 的所有者。
getParents()FolderIterator获取 Folder 的直接父文件夹的集合。
getResourceKey()String获取 Folder 的资源密钥,该密钥是访问通过链接共享的必需密钥。
getSecurityUpdateEligible()Boolean获取此 Folder 是否符合应用安全更新的条件。如果应用安全更新,则在通过链接分享此 Folder 时,需要使用资源密钥才能访问。
getSecurityUpdateEnabled()Boolean获取相应 Folder 在通过链接共享时是否需要资源密钥才能访问。
getSharingAccess()Access获取哪些类别的用户可以访问 Folder,明确获得访问权限的任何个人用户除外。
getSharingPermission()Permission获取已授予可访问 Folder 的用户的权限,明确授予访问权限的任何个人用户除外。
getSize()Integer获取用于在云端硬盘中存储 Folder 的字节数。
getUrl()String获取可用于在 Google 应用(例如 Google 云端硬盘或 Google 文档)中打开 Folder 的网址。
getViewers()User[]获取相应 Folder 的查看者和评论者列表。
isShareableByEditors()Boolean用于确定对 Folder 具有修改权限的用户是否可以与其他用户共享或更改权限。
isStarred()Boolean确定 Folder 是否已在用户的云端硬盘中加星标。
isTrashed()Boolean确定 Folder 是否位于用户的云端硬盘回收站中。
moveTo(destination)Folder将相应项移至指定的目标文件夹。
removeEditor(emailAddress)FolderFolder 的编辑者列表中移除指定用户。
removeEditor(user)FolderFolder 的编辑者列表中移除指定用户。
removeViewer(emailAddress)FolderFolder 的观看者和评论者列表中移除指定用户。
removeViewer(user)FolderFolder 的观看者和评论者列表中移除指定用户。
revokePermissions(emailAddress)Folder撤消授予指定用户的 Folder 访问权限。
revokePermissions(user)Folder撤消授予指定用户的 Folder 访问权限。
searchFiles(params)FileIterator获取当前文件夹的所有子级文件(这些文件符合给定的搜索条件)。
searchFolders(params)FolderIterator获取当前文件夹的所有子文件夹的集合,这些子文件夹需符合给定的搜索条件。
setDescription(description)FolderFolder 设置说明。
setName(name)Folder设置 Folder 的名称。
setOwner(emailAddress)Folder更改 Folder 的所有者。
setOwner(user)Folder更改 Folder 的所有者。
setSecurityUpdateEnabled(enabled)Folder设置 Folder 在通过链接共享时是否需要资源密钥才能访问。
setShareableByEditors(shareable)Folder设置是否允许对 Folder 拥有修改权限的用户与其他用户共享或更改权限。
setSharing(accessType, permissionType)Folder设置哪些类别的用户可以访问 Folder,以及除了明确获得访问权限的任何个人用户之外,这些用户还被授予了哪些权限。
setStarred(starred)Folder设置 Folder 是否已在用户的云端硬盘中加星标。
setTrashed(trashed)Folder设置 Folder 是否位于用户的云端硬盘回收站中。

FolderIterator

方法

方法返回类型简介
getContinuationToken()String获取可用于稍后恢复此迭代的令牌。
hasNext()Boolean确定调用 next() 是否会返回商品。
next()Folder获取文件或文件夹集合中的下一个项。

Permission

属性

属性类型说明
VIEWEnum有权访问相应文件或文件夹的用户只能查看或复制该文件或文件夹。
EDITEnum可以访问相应文件或文件夹的用户能够对其进行编辑。
COMMENTEnum有权访问相应文件或文件夹的用户只能查看、复制或评论该文件或文件夹。
OWNEREnum用户拥有相应文件或文件夹。
ORGANIZEREnum可以在共享云端硬盘中整理文件和文件夹的用户。
FILE_ORGANIZEREnum可以在共享云端硬盘中修改、删除和移动内容的用户。
NONEEnum用户对相应文件或文件夹没有任何权限。

User

方法

方法返回类型简介
getDomain()String|null获取与用户账号关联的域名。
getEmail()String|null获取用户的电子邮件地址。
getName()String|null获取用户的姓名。
getPhotoUrl()String|null获取用户照片的网址。