你当前正在访问 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 开始提供。 指定要包含在响应中的一个或多个属性:
若要在 URI 上指定多个选项,必须使用 URL 编码的逗号 ( %82 ) 分隔每个选项。指定此参数时,隐式假定标头 x-ms-file-extended-info 为 true。 |
timeout |
可选。
timeout 参数以秒表示。 有关详细信息,请参阅设置Azure 文件存储操作的超时。 |
请求标头
下表介绍必需的和可选的请求标头。
请求标头 | 说明 |
---|---|
Authorization |
必需。 指定授权方案、帐户名称和签名。 有关详细信息,请参阅授权对 Azure 存储的请求。 |
Date 或 x-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/action Microsoft.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 文件存储的版本。 |
Date 或 x-ms-date |
指示启动响应的时间的 UTC 日期/时间值。 服务生成此值。 |
x-ms-client-request-id |
可以使用此标头对请求和相应的响应进行故障排除。 如果请求中存在,则此标头的值等于 标头的值 x-ms-client-request-id 。 该值最多为 1024 个可见 ASCII 字符。
x-ms-client-request-id 如果请求中不存在标头,则响应中不会显示此标头。 |
响应正文
XML 响应的格式如下所示。
请注意,Marker
ShareSnapshot
仅当在请求 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}
返回以下时间戳属性: CreationTime
、 LastAccessTime
和 LastWriteTime
。 在 版本及更高版本中 2020-06-12
, include={timestamps}
返回以下时间戳属性: CreationTime
、 LastAccessTime
、 LastWriteTime
、 ChangeTime
和 Last-Modified
。
在版本 2020-10-02 及更高版本中, DirectoryId
响应中返回 。 它指定要 FileId
在其上调用 API 的目录的 。
在版本 2021-12-02 及更高版本中,List Directory and Files
将按 RFC 2396) 所有Name
File
、 Prefix
Directory
Name
或 DirectoryPath
元素值(包含 XML (特别是 U+FFFE 或 U+FFFF) 中无效字符)的百分比编码 (。 如果已编码,则 Name
、 Prefix
或 EnumerationResults
元素将包含属性 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
中使用从一个结果返回的值。