列出目錄和檔案
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 中的路徑元件取代為您自己的路徑元件,如下所示:
路徑元件 | Description |
---|---|
myaccount |
儲存體帳戶的名稱。 |
myshare |
檔案共用的名稱。 |
mydirectorypath |
目錄的路徑。 |
如需路徑命名限制的詳細資訊,請參閱 命名和參考共用、目錄、檔案和中繼資料。
URI 參數
您可以在 URI 上指定下列其他參數。
參數 | 描述 |
---|---|
prefix |
選擇性。 版本 2016-05-31 和更新版本。 篩選結果,只傳回名稱開頭為指定前置詞的檔案和目錄。 |
sharesnapshot |
選擇性。 版本 2017-04-17 和更新版本。 共用快照集參數是不透明的 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 kibibyte (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 版中,只有在此標頭為 true 時, FileId 才會針對檔案和目錄傳回。 在 2020-10-02 版和更新版本中, FileId 一律會針對檔案和目錄傳回 。 |
x-ms-file-request-intent |
如果 Authorization 標頭指定 OAuth 權杖,則為必要專案。 可接受的值為 backup 。 此標頭會 Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action 指定 ,如果在指派給使用 Authorization 標頭授權的身分識別的 RBAC 原則中包含 ,則應該授與 或 Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action 。 適用于 2022-11-02 版和更新版本。 |
x-ms-allow-trailing-dot: { <Boolean> } |
選擇性。 版本 2022-11-02 和更新版本。 布林值會指定是否應該修剪要求 URL 中的尾端點。 如需詳細資訊,請參閱 命名和參考共用、目錄、檔案和中繼資料。 |
要求本文
無。
回應
回應包括 HTTP 狀態碼、一組回應標頭和 XML 格式的回應主體。
狀態碼
成功的作業會傳回狀態碼 200 (OK)。 如需狀態碼的相關資訊,請參閱 狀態和錯誤碼。
回應標頭
這項作業的回應包括下列標頭。 回應也可以包含額外的標準 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
只有在您在要求 URI 上指定 、 ShareSnapshot
和 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
,或呼叫 Get File Properties。
在 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 的百分比編碼 (會) 所有 Directory
Name
Name
File
Prefix
、 或 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
。