メインコンテンツ

dir

フォルダーの内容の一覧表示

説明

dir は、現在のフォルダー内にあるファイルとフォルダーをリストします。

dir name は、name に一致するファイルおよびフォルダーをリストします。name がフォルダーの場合、dir はフォルダーの内容をリストします。パターンを一致させるには、ワイルドカード * および ** を使用します。たとえば、dir *.mlx は拡張子が .mlx であるすべてのファイルをリストします。dir ** にはすべてのサブフォルダー内のファイルが含まれます。

listing = dir(name) は、各ファイルまたはフォルダーの最終変更時間などの属性を構造体配列で返します。

すべて折りたたむ

myfolder が現在の作業フォルダーにあり、3 つのファイルが含まれているとします。その内容をリストします。

dir myfolder
.          ..         myfile1.ext  myfile2.ext  myfile3.ext

myfolder に移動し、ファイル名に 2 が含まれ、拡張子が .ext であるファイルをリストします。

cd myfolder
dir *2*.ext
myfile2.ext

再帰検索ワイルドカード ** を使用して、現在のフォルダーとそのサブフォルダー内のファイルをリストします。

現在のフォルダーに次の内容が含まれているとします。

file1.ext
folder2
     file2.ext
     folder3
         file3.ext

階層内のすべてのファイルをリストします。

dir **
Files Found in Current Folder:

.          ..         file1.ext  folder2  

Files Found in: folder2

.          ..         file2.ext  folder3  

Files Found in: folder2/folder3

.          ..         file3.ext  

複数のファイルに関する詳細を処理する場合、出力構造体を table に変換すると役立つことがよくあります。

現在のフォルダーに次の内容が含まれているとします。

file1.ext
folder2
     file2.ext
     folder3
         file3.ext

** ワイルドカードを使用して階層全体の詳細をリクエストします。出力は構造体配列です。date フィールドは char 型で、datenum フィールドはシリアル日付値です。

listing = dir("**")
listing = 

  11x1 struct array with fields:

    name
    folder
    date
    bytes
    isdir
    datenum

構造体を table に変換し、datedatetime 値に置き換えます。

tbl = struct2table(listing);
tbl.date = datetime(tbl.datenum,ConvertFrom="datenum");
tbl = removevars(tbl,"datenum")
tbl = 

  11x5 table

        name               folder                   date            bytes    isdir  
    _____________    ___________________    ____________________    _____    _____

    {'.'        }    {'/mycurrent'     }    01-Mar-2024 15:45:35      0      true
    {'..'       }    {'/mycurrent'     }    01-Mar-2024 15:44:10      0      true
    {'file1.ext'}    {'/mycurrent'     }    01-Mar-2024 15:45:45      8      false
    {'folder2'  }    {'/mycurrent'     }    01-Mar-2024 15:45:16      0      true 
    .
    .
    .

データのサブセットを検索するには、table にインデックスを付けます。たとえば、フォルダーのみを抽出し、. フォルダーと .. フォルダーを除外します。

folders = tbl(tbl.isdir,:);
namedFolders = folders(~matches(folders.name,[".",".."]),:)
namedFolders =

  2x5 table

        name                folder                  date             bytes    isdir
    ___________    ______________________    ____________________    _____    _____

    {'folder2'}    {'/mycurrent'        }    01-Mar-2024 15:45:16      0      true 
    {'folder3'}    {'/mycurrent/folder2'}    01-Mar-2024 15:44:58      0      true 

入力引数

すべて折りたたむ

絶対パスまたは相対パスを含むファイルまたはフォルダー名。string スカラーまたは文字ベクトルとして指定します。

リモートの場所にあるファイルとフォルダーの場合は、絶対パスを Uniform Resource Locator (URL) として指定する必要があります。インターネット URL には、プロトコル タイプ "http://" または "https://" を含める必要があります。詳細については、リモート データの操作を参照してください。

パターンを検索したり、複数のフォルダーを検索したりするには、ワイルドカード * または ** を使用します。dir 関数は、* を含むファイル名をサポートしているファイル システムの場合でも、常に * 文字をワイルドカードとして扱います。

ワイルドカード

意味

*

* がファイルまたはフォルダー名の一部である場合、任意の数の文字を表します。たとえば、dir *.mat は、現在のフォルダー内にある MAT ファイルをすべてリストします。

* がパス内でファイル区切り記号のすぐ横にある場合、単一レベルの階層を表します。たとえば、dir */*.mat は、現在のフォルダーの 1 つ下にあるフォルダー内の MAT ファイルをリストします。

**

** は、サブフォルダーの再帰的検索を表します。たとえば、dir ** は、現在のフォルダーとそのすべてのレベルのサブフォルダーにあるファイルをリストします。** ワイルドカードの横に指定する文字は、ファイル区切りでなければなりません。

Microsoft® Windows® システムでは、dir は DOS によって生成された省略ファイル名およびショートカット ファイル (.lnk) をサポートします。

出力引数

すべて折りたたむ

ファイル属性。n 行 1 列の構造体配列として返されます。ここで、nname に一致したファイルおよびフォルダーの数です。

構造体には次のフィールドがあります。

フィールド名

説明

クラス

name

ファイルまたはフォルダー名

char

folder

ファイルまたはフォルダーの場所

char

date

修正日のタイムスタンプ

char

bytes

ファイルのサイズ (バイト)

double

isdir

name がフォルダーの場合は 1name がファイルの場合は 0

logical

datenum

更新日のシリアル日付値

double

インターネット URL の場合、ファイル サイズ情報が利用できない場合、bytes フィールドは NaN になります。

制限

  • MATLAB® では、認証が必要なインターネット URL はサポートされていません。

  • MATLAB Online™ では Microsoft OneDrive™ ファイルおよびフォルダーに関連付けられたインターネット URL はサポートされていますが、MATLAB のインストール バージョンではローカル OneDrive ファイルのみがサポートされています。

ヒント

  • dir がファイルをクエリできない場合は、次の既定値が出力構造体で返されます。

    date: '' 
    bytes: [] 
    isdir: 0 
    datenum: [] 
    

    この問題は、移動、削除、または名前変更されたターゲットを指すシンボリック リンクをクエリした場合に最もよく発生します。これらの無効なエントリを除外するには、構造体を table に変換し、空の値を含む行を削除します。

    listing = struct2table(dir); 
    listing(isempty(listing.bytes),:) = [];
    
  • Microsoft Windows プラットフォーム上で使用できるドライブのリストを取得するには、DOS の net use コマンドを使用します。

    dos("net use")

拡張機能

すべて展開する

バージョン履歴

R2006a より前に導入

すべて展開する