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

列出目录和文件

List Directories and Files作返回指定共享或目录下的文件或目录的列表。 它仅列出目录层次结构的单个级别的内容。 在版本 2025-05-05 及更高版本中支持此作,以启用 NFS 协议的文件共享。

协议可用性

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

请求

List Directories and Files 请求构造如下。 建议使用 HTTPS。

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

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

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

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

URI 参数

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

常见 URI 参数

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

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

maxresults 设置为小于或等于零的值会导致错误响应代码 400(错误请求)。
timeout 自选。 timeout 参数以秒为单位表示。 有关详细信息,请参阅 设置 Azure 文件存储作的超时

仅限 SMB 的 URI 参数

参数 描述
include={Timestamps, ETag, Attributes, PermissionKey} (可选)从版本 2020-04-08 开始可用。 指定要包含在响应中的一个或多个属性:
  • Timestamps
  • ETag
  • Attributes (Win32 文件属性)
  • PermissionKey

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

指定此参数时,隐式假定标头 x-ms-file-extended-info 为 true。

仅限 NFS 的 URI 参数

没有。

请求标头

下表描述了必需和可选的请求标头:

常见请求标头

请求标头 描述
Authorization 必填。 指定授权方案、帐户名称和签名。 有关详细信息,请参阅 授权对 Azure 存储的请求。
Datex-ms-date 必填。 指定请求的协调世界时(UTC)。 有关详细信息,请参阅 授权对 Azure 存储的请求。
x-ms-version 所有授权请求都是必需的。 指定要用于此请求的作的版本。 在版本 2025-05-05 及更高版本中支持此作,以启用 NFS 协议的文件共享。

有关详细信息,请参阅 azure 存储服务 版本控制。
x-ms-client-request-id 自选。 提供客户端生成的不透明值,该值具有配置日志记录时日志中记录的 1-kibibyte (KiB) 字符限制。 强烈建议使用此标头将客户端活动与服务器接收的请求相关联。 有关详细信息,请参阅 监视 Azure 文件
x-ms-file-request-intent 如果需要 Authorization 标头指定 OAuth 令牌。 可接受的值为 backup。 此标头指定,如果 Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/actionMicrosoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action 包含在分配给使用 Authorization 标头授权的标识的 RBAC 策略中,则应授予 Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action。 适用于版本 2022-11-02 及更高版本。
x-ms-allow-trailing-dot: { <Boolean> } 自选。 版本 2022-11-02 及更高版本。 布尔值指定是否应剪裁请求 URL 中存在的尾随点。

如果目标位于启用了 NFS 协议的文件共享上,则默认支持尾随点,则忽略此标头。

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

仅 SMB 请求标头

请求标头 描述
x-ms-file-extended-info: {true} 自选。 版本 2020-04-08 及更高版本。 如果 include 查询参数不为空,则隐式假定此标头为 true。 如果为 true,则表示文件的大小为最新的文件 Content-Length 属性。

仅 NFS 请求标头

没有。

请求正文

没有。

响应

响应包括 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 标头,则响应中不会显示此标头。

仅 SMB 响应标头

没有。

仅 NFS 响应标头

没有。

响应正文

XML 响应的格式如下所示。

仅当在请求 URI 上指定 MarkerShareSnapshotMaxResults 元素时才存在。 仅当列表结果未完成时,NextMarker 元素才具有值。

Content-Length 元素在文件列表中返回,指示文件的大小。 但是,此值可能不会 up-to-date,因为 SMB 或 NFS 客户端可能在本地修改了该文件。 在句柄关闭或 SMB作锁断开之前,Content-Length 的值可能不会反映该事实。 若要检索当前属性值,请对启用了 SMB 协议的文件共享上的目录使用 x-ms-file-extended-info: true,或者针对特定文件调用 获取文件属性

在版本 2021-12-02 及更新版本中,List Directory and Files 将按 RFC 2396 进行百分比编码(每个 RFC 2396)所有 FileNameDirectoryNamePrefixDirectoryPath 元素值,这些元素值在 XML(具体而言,U+FFFE 或 U+FFFF)中包含无效字符。 如果编码,则 NamePrefixEnumerationResults 元素将包含 Encoded=true 属性。 这仅适用于包含 XML 中无效字符的 Name 元素值,而不是响应中的其余 Name 元素。

启用了 SMB 协议的文件共享的响应正文

<?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>  

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

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

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

启用了 NFS 协议的文件共享的响应正文

<?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>
      </Properties>
    </File>
    <Directory>
      <FileId>file-id</FileId>
      <Name>directory-name</Name>
    </Directory>
  </Entries>
  <NextMarker />
</EnumerationResults>

时间戳字段的日期/时间格式和 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的后续调用。

另请参阅

目录上的