Main Content

dir

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

説明

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

dir name は、name に一致するファイルおよびフォルダーをリストします。name がフォルダーの場合、dir はフォルダーの内容をリストします。name を指定するには絶対パス名または相対パス名を使用します。引数 name には、ファイル名では * ワイルドカード、パス名では *** の両方のワイルドカードを含めることができます。** ワイルドカードの次の文字は、ファイル区切りでなければなりません。

listing = dir(name)name についての属性を返します。

フォルダーの内容の表示

フォルダーの内容をリストします。

ファイル myfile1.mmyfile2.m、および myfile3.m を含むフォルダー myfolder を作成します。

mkdir myfolder
movefile myfile1.m myfolder
movefile myfile2.m myfolder
movefile myfile3.m myfolder

myfolder 内のファイルをリストします。

dir myfolder
.          ..         myfile1.m  myfile2.m  myfile3.m  

指定した名前と一致するファイルの検索

用語 my を含み、拡張子が .m であるすべてのファイルをリストします。

ファイル myfile1.mmyfile2.m、および myfile3.txt を含むフォルダー myfolder を作成します。

mkdir myfolder
movefile myfile1.m myfolder
movefile myfile2.m myfolder
movefile myfile3.txt myfolder

myfolder 内の一致するファイルをリストします。

cd myfolder
dir *my*.m
myfile1.m  myfile2.m  

サブフォルダー内のファイルの検索

現在のフォルダー内のすべてのファイルと、現在のフォルダーのすべてのサブフォルダーをリストします。

次のファイルとフォルダーを含むフォルダー myfolder1 を作成します。

myfile1.m
myfolder2
     myfile2.m
     myfolder3
         myfile3.m
mkdir myfolder1
mkdir myfolder1/myfolder2
mkdir myfolder1/myfolder2/myfolder3

movefile myfile1.m myfolder1
movefile myfile2.m myfolder1/myfolder2
movefile myfile3.m myfolder1/myfolder2/myfolder3

myfolder1 内の拡張子 .m をもつすべてのファイルと、myfolder1 のすべてのサブフォルダーをリストします。

cd myfolder1
dir **/*.m
Files Found in Current Folder:

myfile1.m  

Files Found in: myfolder2

myfile2.m  

Files Found in: myfolder2\myfolder3

myfile3.m  

返された構造体の情報の検索

myfolder フォルダーの内容リストを変数 MyFolderInfo に返します。

ファイル myfile1.mmyfile2.m、および myfile3.m を含むフォルダー myfolder を作成します。

mkdir myfolder
movefile myfile1.m myfolder
movefile myfile2.m myfolder
movefile myfile3.m myfolder

myfolder 内のファイルのリストを取得します。MATLAB® は、情報を構造体配列に返します。

MyFolderInfo = dir('myfolder')
MyFolderInfo=5×1 struct array with fields:
    name
    folder
    date
    bytes
    isdir
    datenum

特定のアイテムにアクセスするには、構造体のインデックスを使用します。

MyFolderInfo(3).name
ans = 
'myfile1.m'

ファイルの最終更新日の検索

ファイルが最後に変更された日時を取得します。

まず、dir が返す構造体の datenum フィールドをクエリします。datenum フィールドの値はシリアル日付値で、ロケールによって変わることはありません。

MyFileInfo = dir('myfile1.m');
FileDate = MyFileInfo.datenum
FileDate = 7.3647e+05

R2022b 以降、シリアル日付値は推奨されません。関数 datetime を使用して、シリアル日付値を datetime 値に変換します。

FileDatetime = datetime(FileDate,ConvertFrom="datenum")
FileDatetime = datetime
   24-May-2016 11:24:31

入力引数

すべて折りたたむ

ファイル名またはフォルダー名。文字ベクトルまたは string スカラーとして指定します。name が string である場合は、かっこで囲みます。たとえば、dir("FolderName") のようになります。

リモートの場所のファイルおよびフォルダーをリストするには、Uniform Resource Locator (URL) として指定した絶対パスを name に含めなければなりません。詳細については、リモート データの操作を参照してください。

複数のファイルを検索するには、ファイル名にワイルドカードを使用します。たとえば、dir *.txt は、現在のフォルダー内にある拡張子が txt のファイルをすべてリストします。パス上のフォルダーとサブフォルダーを再帰的に検索するには、パス名にワイルドカードを使用します。たとえば、dir */*.txt は現在のフォルダーの 1 つ下のフォルダーにある、拡張子が txt のファイルをすべてリストし、dir **/*.txt は現在のフォルダーまたはそれより下のフォルダーにある、拡張子が txt のファイルをすべてリストします。** ワイルドカードの次の文字は、ファイル区切りでなければなりません。

メモ

MATLAB® は、* を含むファイル名をサポートしているファイル システムの場合でも、常に * をワイルドカードとして扱います。

MATLAB の関数 dir は、いずれも DOS で生成される短いファイル名をサポートしているという点では、Microsoft® Windows® オペレーティング システムの dir コマンドと同じです。

出力引数

すべて折りたたむ

ファイル属性。n 行 1 列の構造体配列として返されます。ここで、ndir コマンドで返されるファイルおよびフォルダーの数です。

次の表に、構造体のフィールドを示します。

フィールド名

説明

クラス

name

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

char

folder

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

char

date

修正日のタイムスタンプ

char

bytes

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

double

isdir

名前がフォルダーの場合は 1、名前がファイルの場合は 0

logical

datenum

更新日のシリアル日付値。

double

ヒント

  • dir コマンドによって返される無効なエントリを除外するには、関数 cellfun を使用します。

    MyFolderInfo = dir; 
    MyFolderInfo = MyFolderInfo(~cellfun('isempty', {MyFolderInfo.date})); 

    関数 dir を出力引数を指定して実行し、存在しないファイルまたは何らかの理由で関数 dir がクエリできないファイルが結果に含まれる場合に、無効なエントリが発生します。この場合、dir は次の既定値を返します。

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

    無効なエントリのほとんどは、dir のクエリするシンボリック リンクが、存在しないターゲットをポイントしている場合に、UNIX® プラットフォームで発生します。存在しないターゲットとは、移動、削除、あるいは名前変更が行われたターゲットです。

  • Microsoft Windows プラットフォーム上で使用できるドライブのリストを取得するには、コマンド ラインで DOS の net use コマンドを使用します。

    dos('net use')

    または以下を入力します。

    [s,r] = dos('net use')

    MATLAB は、結果を文字配列 r に返します。

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する