適用対象:
Databricks SQL
Databricks Runtime 18 LTS 以上" とマークされているチェック
Important
この機能は ベータ版です。 ワークスペース管理者は、[ プレビュー] ページからこの機能へのアクセスを制御できます。 Manage Azure Databricks プレビューを参照してください。
パス上のファイル一覧を返し、各ファイルの FILE 参照も含まれます。
構文
list_files(path [, connection => connection ] [, recursive => recursive ])
Arguments
-
pathリストへの道STRING。 ボリュームパス、外部ロケーションパス、またはSFTP、SharePoint、Googleドライブなどの他のファイルストレージシステム上のパスなどがあります。 -
connection: SFTP、SharePoint、Google Driveなどのシステムと認証するためのオプションのUnity Catalog接続。 -
recursive関数がサブディレクトリに降りるかどうかを制御するオプションのBOOLEANです。 指定できる値は次のとおりです。-
true: パス内のファイルとそのすべてのサブディレクトリを一覧表示し、ディレクトリは返しません。 これが既定値です。 -
false: パスの直近のエントリのみをリストし、nullfile参照とsize0を持つディレクトリを返します。
-
connectionとrecursiveの引数は、=>構文(例えばconnection => my_conn)を使って名前で渡さなければなりません。
返品
ファイルごとに1行、以下の列を持つテーブル:
| Column | タイプ | Description |
|---|---|---|
path |
STRING |
ファイルへのパス。 |
size |
BIGINT |
ファイルのサイズ (バイト単位)。 |
modification_time |
TIMESTAMP |
ファイルの最終修正時刻はUTCです。 |
file |
FILE |
ファイルの参照。 |
一般的なエラー状態
LIST_FILES_AUTHORIZATION_ERROR.ON_PATHLIST_FILES_AUTHORIZATION_ERROR.ON_CONNECTIONLIST_FILES_ERROR.PATH_NOT_EXISTSLIST_FILES_ERROR.CONNECTION_NOT_EXISTS
詳細については、「Azure Databricksのエラー条件」をご覧ください。
例示
ボリュームディレクトリにファイルをリストアップするには:
SELECT * FROM list_files('/Volumes/my_catalog/my_schema/my_volume/');
関数はファイルごとに1行を返します:
path size modification_time file
/Volumes/my_catalog/my_schema/my_volume/file1.json 1234 2026-04-11 00:00:00.000 <file>
Unity Catalog接続を使って外部システムからのファイルをリストアップするには:
SELECT path, size FROM list_files('https://drive.google.com/drive/folders/my-folder-id', connection => my_gdrive_connection);
ディレクトリの即時エントリのみをリストアップするには、 recursive を falseに設定してください:
SELECT * FROM list_files('/Volumes/my_catalog/my_schema/my_volume/', recursive => false);
ディレクトリは、 nullfile 参照と size の 0とともに結果に現れます。
path size modification_time file
/Volumes/my_catalog/my_schema/my_volume/file1.json 1234 2026-04-11 00:00:00.000 <file>
/Volumes/my_catalog/my_schema/my_volume/subdir/ 0 2026-04-11 00:00:00.000 NULL
ディレクトリ内の全ファイルの合計サイズを計算するには、 size 列の合計を行います。
recursiveデフォルトでtrueとなるため、サブディレクトリ内のファイルも含まれます:
SELECT sum(size) AS total_bytes FROM list_files('/Volumes/my_catalog/my_schema/my_volume/');
クエリは合計サイズをバイト単位で返します:
total_bytes
1234