ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

uigetfile

ファイルを取り出す標準ダイアログ ボックスを開く

構文

filename = uigetfile
[FileName,PathName,FilterIndex] = uigetfile(FilterSpec)
[FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle)
[FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle,DefaultName)
[FileName,PathName,FilterIndex] = uigetfile(...,'MultiSelect',selectmode)

説明

filename = uigetfile は、現在のフォルダーにあるファイルを一覧にするモーダル ダイアログ ボックスを表示して、ファイルを選択するか、ファイル名を入力できるようにします。ファイル名が有効でそのファイルが存在する場合、[開く] をクリックすると、uigetfile はファイル名を文字列として返します。[キャンセル] (またはウィンドウのクローズ ボックス) をクリックすると、uigetfile0 を返します。

[FileName,PathName,FilterIndex] = uigetfile(FilterSpec) は、拡張子が FilterSpec に一致するファイルのみを表示します。プラットフォームによっては、uigetfileFilterSpec と一致しないファイルもグレーで表示します。FilterSpec には、文字列または文字列のセル配列を指定でき、* ワイルドカードを含めることができます。

  • FilterSpec がファイル名の場合、そのファイル名は [ファイル名] フィールドで選択された状態で表示されます。ファイルの拡張子が既定のフィルターです。

  • FilterSpec にパスを含むことができます。パスには、'.''..'\'/'、または '~' を含むことができます。たとえば、'../*.m' は、現在のフォルダーより上にあるフォルダー内のすべてのコード ファイルを表示します。

  • FilterSpec がフォルダー名の場合、uigetfile はそのフォルダーの内容を表示し、[ファイル名] フィールドは空で、フィルターは適用されません。フォルダー名を指定するには、FilterSpec の最後の文字を '\''/' にします。

  • FilterSpec が文字列のセル配列の場合は、2 列を含むことができます。最初の列にはファイル拡張子のリストが含まれます。オプションの 2 列目は、対応する種類の一覧を含みます。これらの種類は、[ファイルの種類] フィールドの標準の種類を置き換えます。説明は空の文字列にできません。2 番目と 3 番目の例は、FilterSpec としてのセル配列の使い方を示しています。

FilterSpec がない場合や空の場合、uigetfile は既定のファイル タイプの一覧 (たとえば、すべての MATLAB® ファイル) を使用します。

[開く] をクリックした後、ファイル名が存在する場合、uigetfileFileName にファイル名、PathName にそのパスを返します。[キャンセル] またはウィンドウのクローズ ボックスをクリックした場合、関数は FileName および PathName0 に設定します。

FilterIndex は、ダイアログ ボックスで選択されたフィルターのインデックスです。インデックスは 1 から開始します。[キャンセル] またはウィンドウのクローズ ボックスをクリックした場合、関数は FilterIndex0 に設定します。

[FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle) は、タイトル DialogTitle をもつダイアログ ボックスを表示します。既定のファイルの種類を使用し、ダイアログ タイトルを指定するには、以下を入力します。

uigetfile('',DialogTitle)

[FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle,DefaultName) は、DefaultName で指定されたファイル名が [ファイル名] フィールドに表示されるダイアログ ボックスを表示します。DefaultName はパスまたはパス/ファイル名にもできます。この場合、関数 uigetfile は、path で指定されるフォルダーでダイアログ ボックスを開きます。DefaultName 引数には、'.''..'\、または '/' を使用できます。フォルダー名を指定するには、DefaultName の最後の文字を '\''/' にします。指定したパスが存在しない場合、関数 uigetfile は現在のフォルダーでダイアログ ボックスを開きます。

[FileName,PathName,FilterIndex] = uigetfile(...,'MultiSelect',selectmode) は、ダイアログ ボックスを "複数選択" モードで開きます。selectmode の有効な値は、'on''off' (1 つだけを選択可能な既定の設定) です。'MultiSelect''on' で、ダイアログ ボックスで複数のファイルを選択した場合、FileName は文字列のセル配列です。各配列要素には、選択したファイルの名前が含まれます。セル配列のファイル名は、プラットフォームで使用される順に並べ替えます。複数ファイルを選択する場合、それらは同じフォルダーに存在していなければなりません。それ以外の場合は、MATLAB が警告ダイアログ ボックスを表示します。Microsoft® Windows® ライブラリは複数のフォルダーにまたがっている場合がある点に注意してください。PathName はファイルを含むフォルダーを特定する文字列です。

'*''?' のワイルドカード文字をファイル名に含めた場合、関数 uigetfile[開く] をクリックしても応答しません。ダイアログ ボックスは、キャンセルするかワイルドカード文字を削除するまで開いたままになります。この制限は、これらの文字をファイル名で使用できるファイル システムを含むすべてのプラットフォームに適用されます。

    メモ:   ダイアログ ボックスの視覚的特性は、MATLAB を実行しているオペレーティング システムに依存します。

このダイアログ ボックスには、現在のディレクトリにある MATLAB コード ファイルがすべて一覧表示されます。uigetfile は選択したファイルの名前およびパスを返します。

[FileName,PathName] = uigetfile('*.m','Select the MATLAB code file');

ファイル タイプ ドロップダウン リストに表示されるファイル タイプのリストを作成するには、以下のコードのようにファイル拡張子をセミコロンで区切ります。uigetfile は、既知の各ファイル タイプの既定の説明を表示します。

[filename, pathname] = ...
     uigetfile({'*.m';'*.slx';'*.mat';'*.*'},'File Selector');

ファイルの種類の一覧を作成し、既定の設定とは異なる説明を与えようとする場合は、以下のコードのようにセル配列を使用します。この例は、複数のファイル タイプへの 'MATLAB Files''Models' の説明の関連付けも行います。

[filename, pathname] = uigetfile( ...
{'*.m;*.fig;*.mat;*.slx;*.mdl',...
 'MATLAB Files (*.m,*.fig,*.mat,*.slx,*.mdl)';
   '*.m',  'Code files (*.m)'; ...
   '*.fig','Figures (*.fig)'; ...
   '*.mat','MAT-files (*.mat)'; ...
   '*.mdl;*.slx','Models (*.slx, *.mdl)'; ...
   '*.*',  'All Files (*.*)'}, ...
   'Pick a file');

セル配列の最初の列にはファイル拡張子が含まれ、2 番目の列にはファイル タイプの説明が含まれます。この例では、1 列目の最初の項目は、セミコロンで区切られた複数の拡張子が含まれています。これらはすべて、説明 'MATLAB Files (*.m,*.fig,*.mat,*.mdl)' に関連付けられています。このコードは、次の図に示されるダイアログ ボックスを作成します。

次のコードを使用すると、ファイルを選択して、結果の要約メッセージをコマンド ウィンドウに表示することができます。

[filename, pathname] = uigetfile('*.m', 'Select a MATLAB code file');
if isequal(filename,0)
   disp('User selected Cancel')
else
   disp(['User selected ', fullfile(pathname, filename)])
end

このコードは、ファイル タイプのリストを作成し、それらに既定とは異なる説明を付けます。また、複数ファイルの選択を有効にします。Shift または Ctrl キーを押しながら追加のファイル名をクリックすると、複数のファイルを選択できます。

[filename, pathname, filterindex] = uigetfile( ...
{  '*.mat','MAT-files (*.mat)'; ...
   '*.slx;*.mdl','Models (*.slx, *.mdl)'; ...
   '*.*',  'All Files (*.*)'}, ...
   'Pick a file', ...
   'MultiSelect', 'on');

DefaultName 引数を使用すると、ダイアログ ボックスの起動パスと既定のファイル名を指定できます。

uigetfile({'*.jpg;*.tif;*.png;*.gif','All Image Files';...
          '*.*','All Files' },'mytitle',...
          'C:\myfiles\my_examples\gbtools\setpos1.png')

代替方法

現在のフォルダー、または指定したフォルダー内のフィルター処理済みまたはフィルター未処理のファイル一覧を返すには、関数dir を使用します。dir はファイルの属性も返すことができます。

この情報は役に立ちましたか?