列出目錄和檔案

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 版開始提供。 指定要包含在回應中的一或多個屬性:
  • 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 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 檔案儲存體版本。
Datex-ms-date UTC 日期/時間值,指出起始回應的時間。 服務會產生此值。
x-ms-client-request-id 您可以使用此標頭來針對要求和對應的回應進行疑難排解。 如果此標頭存在於要求中,則此標頭的值等於 標頭的值 x-ms-client-request-id 。 此值最多為 1024 個可見的 ASCII 字元。 x-ms-client-request-id如果要求中沒有標頭,此標頭將不會出現在回應中。

回應本文

XML 回應的格式如下。

請注意, Marker 只有在您在要求 URI 上指定 、 ShareSnapshotMaxResults 元素時,才會存在。 只有在清單結果未完成時,元素 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} 傳回下列時間戳記屬性: CreationTimeLastAccessTimeLastWriteTime 。 在 版本和更新版本中 2020-06-12include={timestamps} 傳回下列時間戳記屬性: CreationTimeLastAccessTimeLastWriteTimeChangeTimeLast-Modified

在 2020-10-02 版和更新版本中, DirectoryId 會在回應中傳回。 它會指定要 FileId 呼叫 API 之目錄的 。

在 2021-12-02 版和更新版本中, List Directory and Files 每個 RFC 2396 的百分比編碼 (會) 所有 DirectoryNameNameFilePrefix 、 或 DirectoryPath 元素值,這些值包含 XML (中不正確字元,特別是 U+FFFE 或 U+FFFF) 。 如果編碼, Name 則 或 PrefixEnumerationResults 專案會包含 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

另請參閱

目錄上的作業