你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

列出目录和文件

List Directories and Files操作返回指定共享或目录下的文件或目录的列表。 它只会列出单一目录层次结构级别的内容。

协议可用性

已启用文件共享协议 可用
SMB 是
NFS 否

请求

可以按如下所示构造 List Directories and Files 请求。 建议使用 HTTPS。

方法 请求 URI HTTP 版本
GET https://myaccount.file.core.windows.net/myshare/mydirectorypath?restype=directory&comp=list HTTP/1.1
GET https://myaccount.file.core.windows.net/myshare/mydirectorypath?restype=directory&sharesnapshot=<DateTime>&comp=list HTTP/1.1

将请求 URI 中所示的路径组件替换为你自己的组件,如下所示:

路径组件 说明
myaccount 存储帐户的名称。
myshare 文件共享的名称。
mydirectorypath 目录的路径。

有关路径命名限制的详细信息,请参阅 命名和引用共享、目录、文件和元数据

URI 参数

可以在 URI 上指定以下附加参数。

参数 说明
prefix 可选。 版本 2016-05-31 及更高版本。 筛选结果以仅返回名称以指定前缀开头的文件和目录。
sharesnapshot 可选。 版本 2017-04-17 及更高版本。 share 快照 参数是一个不透明的DateTime值,如果存在,则指定用于查询文件和目录列表的共享快照。
marker 可选。 一个字符串值,该值指定要使用下一个列表操作返回的列表部分。 如果返回的列表未完成,则操作在响应正文中返回标记值。 然后,可以在后续调用中使用标记值来请求下一组列表项。

标记值对客户端不透明。
maxresults 可选。 指定要返回的最大文件或目录数。 如果请求未指定 maxresults或指定大于 5,000 的值,则服务器将返回最多 5,000 项。

maxresults 设置为小于等于零的值会导致出现错误响应代码 400(错误请求)。
include={Timestamps, ETag, Attributes, PermissionKey} (可选)从版本 2020-04-08 开始提供。 指定要包含在响应中的一个或多个属性:
  • Timestamps
  • ETag
  • Attributes (Win32 文件属性)
  • PermissionKey

若要在 URI 上指定多个选项,必须使用 URL 编码的逗号 (%82) 分隔每个选项。

指定此参数时,隐式假定标头 x-ms-file-extended-info 为 true。
timeout 可选。 timeout 参数以秒表示。 有关详细信息,请参阅设置Azure 文件存储操作的超时

请求标头

下表介绍必需的和可选的请求标头。

请求标头 说明
Authorization 必需。 指定授权方案、帐户名称和签名。 有关详细信息,请参阅授权对 Azure 存储的请求
Datex-ms-date 必需。 指定请求的协调世界时 (UTC)。 有关详细信息,请参阅授权对 Azure 存储的请求
x-ms-version 对于所有授权请求是必需的,对于匿名请求是可选的。 指定用于此请求的操作的版本。 有关详细信息,请参阅 Azure 存储服务的版本控制
x-ms-client-request-id 可选。 提供客户端生成的不透明值,其中包含 1-kiB (KiB) 配置日志记录时记录在日志中的字符限制。 强烈建议使用此标头将客户端活动与服务器接收的请求相关联。 有关详细信息,请参阅监视Azure 文件存储
x-ms-file-extended-info: {true} 可选。 版本 2020-04-08 及更高版本。 如果 include 查询参数不为空,则隐式假定此标头为 true。 如果为 true,则 Content-Length 属性将是最新的。 在版本 2020-04-08、2020-06-12 和 2020-08-04 中, FileId 仅当此标头为 true 时,才会返回文件和目录。 在 2020-10-02 及更高版本中, FileId 始终返回文件和目录。
x-ms-file-request-intent 如果 Authorization 标头指定 OAuth 令牌,则为必需。 可接受的值为 backup。 此标头指定Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/actionMicrosoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action,如果 或 包含在分配给使用 标头授权的标识的 RBAC 策略中,则应授予 或Authorization。 适用于版本 2022-11-02 及更高版本。
x-ms-allow-trailing-dot: { <Boolean> } 可选。 版本 2022-11-02 及更高版本。 布尔值指定是否应剪裁请求 URL 中存在的尾随点。 有关详细信息,请参阅 命名和引用共享、目录、文件和元数据

请求正文

无。

响应

响应包括 HTTP 状态代码、一组响应标头以及采用 XML 格式的响应正文。

状态代码

此操作成功后返回状态代码 200(正常)。 有关状态代码的信息,请参阅 状态和错误代码

响应标头

此操作的响应包括以下标头。 响应还可以包含其他标准 HTTP 标头。 所有标准标头都符合 HTTP/1.1 协议规范

响应标头 说明
Content-Type 指定返回的结果所采用的格式。 目前,此值为 application/xml
x-ms-request-id 此标头唯一标识发出的请求,可用于对请求进行故障排除。 有关详细信息,请参阅 API 操作故障排除
x-ms-version 指示用于运行请求Azure 文件存储的版本。
Datex-ms-date 指示启动响应的时间的 UTC 日期/时间值。 服务生成此值。
x-ms-client-request-id 可以使用此标头对请求和相应的响应进行故障排除。 如果请求中存在,则此标头的值等于 标头的值 x-ms-client-request-id 。 该值最多为 1024 个可见 ASCII 字符。 x-ms-client-request-id如果请求中不存在标头,则响应中不会显示此标头。

响应正文

XML 响应的格式如下所示。

请注意,MarkerShareSnapshot仅当在请求 URI 上指定 、 和 MaxResults 元素时,它们才存在。 NextMarker仅当列表结果不完整时, 元素才具有值。

<?xml version="1.0" encoding="utf-8"?>  
<EnumerationResults ServiceEndpoint="https://myaccount.file.core.windows.net/" ShareName="myshare" ShareSnapshot="date-time" DirectoryPath="directory-path">  
  <Marker>string-value</Marker>
  <Prefix>string-value</Prefix>
  <MaxResults>int-value</MaxResults>
  <DirectoryId>directory-id</DirectoryId>
  <Entries>
    <File>
      <FileId>file-id</FileId>
      <Name>file-name</Name>  
      <Properties>  
        <Content-Length>size-in-bytes</Content-Length>
        <CreationTime>datetime</CreationTime>
        <LastAccessTime>datetime</LastAccessTime>
        <LastWriteTime>datetime</LastWriteTime>
        <ChangeTime>datetime</ChangeTime>
        <Last-Modified>datetime</Last-Modified>
        <Etag>etag</Etag>
      </Properties>
      <Attributes>Archive | Hidden | Offline | ReadOnly</Attributes>
      <PermissionKey>4066528134148476695*1</PermissionKey>
    </File>  
    <Directory>
      <FileId>file-id</FileId>
      <Name>directory-name</Name>  
      <Properties>
        <CreationTime>datetime</CreationTime>
        <LastAccessTime>datetime</LastAccessTime>
        <LastWriteTime>datetime</LastWriteTime>
        <ChangeTime>datetime</ChangeTime>
        <Last-Modified>datetime</Last-Modified>
        <Etag>etag</Etag>
      </Properties>
      <Attributes>Archive | Hidden | Offline | ReadOnly</Attributes>
      <PermissionKey>4066528134148476695*1</PermissionKey>
    </Directory>  
  </Entries>  
  <NextMarker />  
</EnumerationResults>  

请注意,Content-Length 元素将在列表中返回。 但是,此值可能不是最新的,因为 SMB 客户端可能已在本地修改了文件。 的值 Content-Length 可能不会反映这一事实,直到句柄关闭或操作锁断开。 若要检索当前属性值,请使用 x-ms-file-extended-info: true或调用 “获取文件属性”。

在版本 2020-04-08、2020-06-12 和 2020-08-04 中,如果标头x-ms-file-extended-info为 true,FileId则为文件和目录返回 。 在版本 2020-10-02 及更高版本中, FileId 始终为文件和目录返回 。

在版本 2020-04-08 中, include={timestamps} 返回以下时间戳属性: CreationTimeLastAccessTimeLastWriteTime。 在 版本及更高版本中 2020-06-12include={timestamps} 返回以下时间戳属性: CreationTimeLastAccessTimeLastWriteTimeChangeTimeLast-Modified

在版本 2020-10-02 及更高版本中, DirectoryId 响应中返回 。 它指定要 FileId 在其上调用 API 的目录的 。

在版本 2021-12-02 及更高版本中,List Directory and Files将按 RFC 2396) 所有NameFilePrefixDirectoryNameDirectoryPath 元素值(包含 XML (特别是 U+FFFE 或 U+FFFF) 中无效字符)的百分比编码 (。 如果已编码,则 NamePrefixEnumerationResults 元素将包含属性 Encoded=true 。 请注意,这只会针对 Name 包含 XML 中无效字符的元素值,而不适用于响应中的其余 Name 元素。

时间戳字段的日期/时间格式和 API 版本

元素 日期时间格式 示例值 API 版本
CreationTime ISO 8601 2020-09-17T13:38:03.2740000Z 2020-04-08 及更高版本
LastAccessTime ISO 8601 2020-09-17T13:38:03.2740000Z 2020-04-08 及更高版本
LastWriteTime ISO 8601 2020-09-17T13:38:03.2740000Z 2020-04-08 及更高版本
ChangeTime ISO 8601 2020-09-17T13:38:03.2740000Z 2020-06-12 及更高版本
Last-Modified RFC 1123 Thu, 17 Sep 2020 13:38:07 GMT 2020-06-12 及更高版本

授权

只有帐户所有者才能调用此操作。

注解

元素中 Content-Length 返回的值对应于文件 x-ms-content-length 标头的值。

请注意,每个返回的 Directory 元素都会根据最大结果进行计数,就像每个 File 元素一样。 文件和目录在响应正文中按词法排序顺序混在一起列出。

列表仅限于目录层次结构的单一级别。 若要列出多个级别,可以迭代方式进行多次调用。 在 Directory 后续调用 List Directories and Files中使用从一个结果返回的值。

另请参阅

对目录的操作