Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

uigetfile

ファイル選択ダイアログ ボックスを開く

説明

file = uigetfile は、現在のフォルダー内のファイルを一覧にするモーダル ダイアログ ボックスを開きます。これにより、ユーザーはファイルの名前を選択または入力できます。ファイルが存在していて有効である場合、ユーザーが [開く] をクリックすると、uigetfile はファイル名を返します。ユーザーが [キャンセル] またはウィンドウの閉じるボタン (X) をクリックすると、uigetfile0 を返します。

ユーザーが [開く] をクリックすると、[file,path] = uigetfile はファイル名およびファイルへのパスを返します。ユーザーが [キャンセル] またはウィンドウの閉じるボタン (X) をクリックすると、uigetfile は両方の出力引数に対して 0 を返します。

ユーザーが [開く] をクリックすると、[file,path,indx] = uigetfile は、ダイアログ ボックスで選択されたフィルターのインデックスを返します。

___ = uigetfile(filter) は、ダイアログ ボックス内に表示されるファイルをフィルター処理するファイルの拡張子を指定します。この構文を、前述の構文の出力引数と任意に組み合わせて使用します。

通常、ファイルの拡張子が一致するファイルのみが表示されます。また一部のプラットフォームでは、uigetfile はフィルターと一致しないファイルを表示しますが、それらのファイル名はグレー表示になります。フィルターがない場合や空の場合、uigetfile は既定のファイル タイプの一覧 (たとえば、すべての MATLAB® ファイル) を使用します。

___ = uigetfile(filter,title) は、ダイアログ ボックスのタイトルを指定します。既定のファイル フィルターを使用してフィルター処理し、カスタムのタイトルを指定するには、フィルター値に空の引用符を使用します。以下に例を示します。

file = uigetfile('','Select a File')

___ = uigetfile(filter,title,defname) は、[ファイル名] フィールドの既定のファイル名、またはダイアログを開いたときに表示される既定のフォルダーを指定します。

___ = uigetfile(___,'MultiSelect',mode) は、ユーザーが複数のファイルを選択できるかどうかを指定します。モードを 'on' に設定すると、マルチファイルの選択が可能になります。既定では、これは 'off' に設定されます。

Windows® ライブラリは複数のフォルダーにまたがっている場合があります。

メモ

ダイアログ ボックスの視覚的特性は、コードを実行するオペレーティング システムに依存します。たとえば、一部のオペレーティング システムはダイアログ ボックスにタイトル バーを表示しません。ダイアログ ボックスのタイトルを関数 uigetfile に渡した場合、それらのオペレーティング システムではタイトルが表示されません。

すべて折りたたむ

ダイアログ ボックスで選択されたファイルの完全なファイル仕様を表示します。関数 disp および fullfile を使用して説明テキストを追加して、path および file の出力値を連結します。

[file,path] = uigetfile('*.m');
if isequal(file,0)
   disp('User selected Cancel');
else
   disp(['User selected ', fullfile(path,file)]);
end

File selection dialog box. The visible files are .m files and the file filter drop-down reads (*.m).

User selected H:\Documents\MyCode\surf.m

説明テキストを使用して、コマンド ウィンドウでフィルター インデックスの選択を表示します。関数 num2str を使用して、数値フィルター インデックス値 (indx) を文字配列に変換します。こうすると、値が関数 disp に対して有効な入力になります。

[file,path,indx] = uigetfile;
if isequal(file,0)
   disp('User selected Cancel')
else
   disp(['User selected ', fullfile(path, file),... 
         ' and filter index: ', num2str(indx)])
end

File selection dialog box. The dialog shows files with various extensions, and the file filter drop-down contains the extensions types.

User selected H:\Documents\MyCode\peaks.fig and filter index: 3

'*. m'filter 入力引数として指定することで、.m 拡張子をもつファイルのみをダイアログ ボックスに表示します。

[file,path] = uigetfile('*.m');

File selection dialog box. The visible files are .m files and the file filter drop-down reads (*.m).

ファイル フィルターのドロップダウン リストのファイル拡張子のリストを作成します。filter 入力引数を文字ベクトルの cell 配列として渡して、ファイル拡張子をセミコロンで区切ります。

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

File selection dialog box. The file filter drop-down has an option for each specified file extension, and (*.m) is selected. The visible files are .m files.

ファイル拡張子のリストを作成し、filter 入力引数を文字ベクトルの cell 配列として渡すことで、それらに説明を加えます。cell 配列の最初の列にはファイル拡張子が含まれ、2 番目の列にはファイル タイプのカスタムの説明が含まれます。この例は、複数のファイル タイプへの 'MATLAB Files''Models' の説明の関連付けも行います。

[file,path,indx] = uigetfile( ...
{'*.m;*.mlx;*.fig;*.mat;*.slx;*.mdl',...
    'MATLAB Files (*.m,*.mlx,*.fig,*.mat,*.slx,*.mdl)';
   '*.m;*.mlx','Code files (*.m,*.mlx)'; ...
   '*.fig','Figures (*.fig)'; ...
   '*.mat','MAT-files (*.mat)'; ...
   '*.mdl;*.slx','Models (*.slx, *.mdl)'; ...
   '*.*',  'All Files (*.*)'}, ...
   'Select a File');

File selection dialog box. The file filter drop-down lists the specified file filter descriptions. The visible files are .m and .fig files.

ダイアログ ボックスを開いたときに既定のファイル名を [ファイル名] フィールドに表示するには、ファイル名を defname 入力引数として渡します。

 [file,path] = uigetfile('*.png',...
               'Select an icon file','icon.png')

File selection dialog box. The title of the dialog box is Select an icon file and the default file name is icon.png. The visible files are .png files.

ダイアログ ボックスを開いたときに既定のパスおよびファイル名を [ファイル名] フィールドに表示するには、完全なファイル名を filter 入力引数として渡します。

[file,path] = uigetfile('C:\Documents\Work\icon.png',...
                        'Select an Image File')

File selection dialog box. The title of the dialog box is Select an Image File. The dialog is open to the C:\Documents\Work folder and the default file name is icon.png. The visible files are .png files.

filter 入力引数を文字ベクトルの cell 配列として渡すことで、ファイル拡張子のリストを作成します。ダイアログ ボックスを開いたときに表示されるフォルダーを指定します。

[file,path] = uigetfile({'*.png';'*.m'},...
               'Select a file','C:\Documents\AppBuildingFiles\')

File selection dialog box. The title of the dialog box is Select a file. The dialog is open to the C:\Documents\AppBuildingFiles folder and the file filter drop-down contains a .png and a .m filter.

'Multiselect' オプションを 'on' に設定することでマルチファイルの選択を有効にします。ユーザーは、Shift キーまたは Ctrl キーを押しながらファイル名をクリックすると、複数のファイルを選択できます。

[file,path] = uigetfile('*.m',...
   'Select One or More Files', ...
   'MultiSelect', 'on');

File selection dialog box. The title of the dialog box is Select One of More Files. Multiple files in the dialog are selected.

入力引数

すべて折りたたむ

ファイル フィルター。文字ベクトル、文字ベクトルの cell 配列または string 配列として指定します。次の表に、filter 引数に渡すことができる入力のタイプと、対応するダイアログ ボックスの動作を示します。

入力動作
ファイル名

ダイアログ ボックスの [ファイル名] フィールドにこのファイル名が表示されます。ファイルの拡張子は既定のフィルター値です。

ファイル名にパスが含まれている場合は、ダイアログ ボックスを開いたときに指定したフォルダーが表示されます。それ以外の場合は、現在のフォルダーが表示されます。指定したフォルダーが存在しない場合、uigetfile はダイアログ ボックスを開いたときに現在のフォルダーを表示します。

  • 'icon.png'

  • 'C:\Documents\icon.png'

  • '..\icon.png'

フォルダー

ダイアログ ボックスにこのフォルダーの内容が表示されます。[ファイル名] フィールドが空の場合、フィルターは適用されません。フォルダー名を指定するには、filter の最後の文字がバックスラッシュ (\) またはスラッシュ (/) でなければなりません。

指定したフォルダーが存在しない場合、uigetfile はダイアログ ボックスを開いたときに現在のフォルダーを表示します。

  • 'C:\Documents\'

ファイル拡張子フィルター

ダイアログ ボックスに、一致するファイル拡張子をもつファイルのみが表示されます。

ユーザーが複数のフィルターから選択できるようにするには、各フィルターの項目を含む cell 配列または string 配列を指定します。ダイアログ ボックスのフィルター フィールドのドロップダウン メニューにフィルターが表示されます。

複数のファイル拡張子を含むフィルターを作成するには、単一の文字ベクトルまたは string 内で拡張子をセミコロン (;) で区切って指定します。

  • '*.m'

  • {'*.m';'*.mlx'}

  • {'*.m;*.mlx';'*.png;*.jpeg'}

説明を含むファイル拡張子フィルター

ダイアログ ボックスのフィルター フィールドに拡張子とその説明が表示されます。ユーザーは複数のフィルターから選択できます。

フィルターの説明を表示するには、cell 配列または string 配列で 2 列を指定します。最初の列にはファイル拡張子のリストが含まれます。2 列目には、対応する説明のリストが含まれます。これらの説明は、フィルター フィールドの標準の説明を置き換えます。説明を空にすることはできません。

  • {'*.m;*.mlx','Code files';'*.png;*.jpeg','Image files'}

ファイル フィルターにパスが含まれている場合、そのパスには次の文字を含めることができます。

  • .

  • ..

  • \

  • /

  • ~

たとえば、'../*.m' は、現在のフォルダーの 1 つ上のフォルダー内にある、拡張子 .m をもつすべてのコード ファイルを一覧表示します。

メモ

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

ダイアログ ボックスのタイトル。文字ベクトルとして指定します。

例: 'Select a File'

既定の [ファイル名] フィールドの値。文字ベクトルまたは string スカラーとして指定します。defname 値は、パスまたはパスおよびファイル名を指定できます。

  • パスを指定する場合、次の文字を含めることができます。

    • .

    • ..

    • \

    • /

    • ~

  • フォルダー名のみを指定するには、defname 値の最後の文字をバックスラッシュ (\) またはスラッシュ (/) のいずれかにします。

例: 'myfile.mat'

例: 'C:\Documents\my_MATLAB_files'

例: '..\myfile.mat'

例: '..\Documents\'

複数選択モード。'on' または 'off' として指定します。複数選択モードがオフの場合、ユーザーは 1 つのファイルのみ選択できます。複数選択モードがオンの場合、ユーザーは複数のファイルを選択できます。ユーザーが複数のファイルを選択する場合、それらは同じフォルダー内になければなりません。そうでないと、MATLAB は警告ダイアログ ボックスを表示します。Microsoft® Windows ライブラリは複数のフォルダーにまたがっている場合があります。

出力引数

すべて折りたたむ

ユーザーがダイアログ ボックスで指定したファイル名。文字ベクトルまたは文字ベクトルの cell 配列として返されます。

'MultiSelect''on' に設定され、ユーザーが複数のファイルを選択する場合、文字ベクトルの cell 配列が返されます。各配列要素には、選択したファイルの名前が含まれます。cell 配列内のファイル名は、ユーザーのプラットフォームで使用される順に並べ替えられます。ユーザーが複数のファイルを選択する場合、それらは同じフォルダー内になければなりません。そうでない場合は、MATLAB によって警告ダイアログ ボックスが表示されます。

ユーザーが [キャンセル] ボタンまたはウィンドウの閉じるボタン (X) をクリックすると、MATLAB はファイルの値を 0 として返します。

指定されたファイルへのパス。文字ベクトルとして返されます。

ユーザーが [キャンセル] ボタンまたはウィンドウの閉じるボタン (X) をクリックすると、MATLAB はファイルの値を 0 として返します。

選択されたフィルター インデックス。整数として返されます。

フィルターは、ラベルが付けられていないダイアログ ボックス コントロールであり、ダイアログ ボックスの [ファイル名] フィールドの右にあります。フィルター インデックス値は、フィルターのドロップダウン リストで選択された項目に対応します。最初の行のインデックスは 1 です。

ユーザーが [キャンセル] ボタンまたはウィンドウの閉じるボタン (X) をクリックすると、MATLAB は 0 のインデックス値を返します。

詳細

すべて折りたたむ

モーダル ダイアログ ボックス

モーダル ダイアログ ボックスでは、モーダル ダイアログ ボックスに応答する前に他の MATLAB ウィンドウを操作することができません。

ヒント

  • MATLAB および MATLAB ツールボックスのさまざまな入力および出力関数を使用してファイルを開く、読むまたは解析するために、uigetfile が返すパスおよびファイル名を使用します。次に例を示します。

    • イメージを読み取るための imread

    • Microsoft Excel ファイルを読み取るための xlsread

    • MATLAB コード ファイルを使用する openedit または run。たとえば、このコードでユーザーから MATLAB コード ファイル名を取得するダイアログ ボックスを作成し、返された値から完全なファイル名を作成してから、ユーザー指定のコード ファイルを実行します。

      [file,path] = uigetfile('*.m');
      selectedfile = fullfile(path,file);
      run(selectedfile);
      

代替機能

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

バージョン履歴

R2006a より前に導入