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

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

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

拡張子によるファイルのフィルター処理

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

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

フィルター リストおよびダイアログ ボックスのタイトルの指定

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

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

フィルターおよびフィルターの説明の指定

ファイル拡張子のリストを作成し、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');

既定のファイル名の指定

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

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

既定のパスおよびファイルの指定

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

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

マルチファイルの選択の有効化

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

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

入力引数

すべて折りたたむ

ファイル フィルター。文字ベクトル、文字ベクトルの cell 配列または string 配列として指定します。

  • filter がファイル名の場合、そのファイル名は [ファイル名] フィールドに表示されます。ファイルの拡張子は既定のフィルター値です (フィルター フィールドは、ラベルが付けられておらず、[ファイル名] フィールドの右に表示されます)。

  • filter にはパスを含めることができます。そのパスには次の文字を含めることができます。

    • .

    • ..

    • \

    • /

    • ~

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

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

  • 指定したパスが存在しない場合、関数 uigetfile は現在のフォルダーでダイアログ ボックスを開きます。

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

  • filter が文字ベクトルの cell 配列または string 配列の場合は、そこに 2 列を含めることができます。最初の列にはファイル拡張子のリストが含まれます。オプションの 2 列目は、対応する種類の一覧を含みます。これらの説明は、フィルター フィールドの標準の説明を置き換えます。説明を空にすることはできません。

例: 'myfile.m'

例: '../myfile.m'

例: '../..'

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

例: 'Select a File'

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

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

    • .

    • ..

    • \

    • /

    • ~

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

例: '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 より前に導入