uigetfile

Открытое диалоговое окно выбора файла

Синтаксис

file = uigetfile
[file,path] = uigetfile
[file,path,indx] = uigetfile
___ = uigetfile(filter)
___ = uigetfile(filter,title)
___ = uigetfile(filter,title,defname)
___ = uigetfile(___,'MultiSelect',mode)

Описание

file = uigetfile открывает модальное диалоговое окно, которое перечисляет файлы в текущей папке. Это позволяет пользователю выбрать или ввести имя файла. Если файл существует и допустим, uigetfile возвращает имя файла, когда пользователь нажимает Open. Если пользователь нажимает Cancel или окно близкая кнопка (X), uigetfile возвращает 0.

[file,path] = uigetfile возвращает имя файла и путь к файлу, когда пользователь нажимает Open. Если пользователь нажимает Cancel или окно близкая кнопка (X), то uigetfile возвращает 0 для обоих из выходных аргументов.

пример

[file,path,indx] = uigetfile возвращает индекс фильтра, выбранного в диалоговом окне, когда пользователь нажимает Open.

пример

___ = uigetfile(filter) задает расширение файла, которым отфильтрованы файлы, отображенные в диалоговом окне. Используйте этот синтаксис с любой из комбинаций выходного аргумента в предыдущих синтаксисах.

Как правило, только файлы с соответствующим расширением файла отображены. На некоторых платформах uigetfile отображает файлы, которые не совпадают с фильтром, но dims те имена файлов. Если фильтр отсутствует или пустой, uigetfile использует список по умолчанию типов файлов (например, все файлы MATLAB®).

пример

___ = uigetfile(filter,title) задает заголовок диалогового окна. Отфильтровать использование фильтра файла по умолчанию, но задать пользовательский заголовок, пустые кавычки использования для значения фильтра. Например:

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

пример

___ = uigetfile(filter,title,defname) задает имя файла по умолчанию для поля File name.

пример

___ = uigetfile(___,'MultiSelect',mode) задает, может ли пользователь выбрать несколько файлов. Установите режим на 'on' включать многофайловый выбор. По умолчанию это установлено в 'off'.

Библиотеки Windows® могут охватить несколько папок.

Примечание

Визуальные характеристики диалогового окна зависят от операционной системы, которая запускает ваш код. Например, некоторые операционные системы не показывают строки заголовка на диалоговых окнах. Если вы передаете заголовок диалогового окна на функцию uigetfile, те операционные системы не отображают заголовок.

Примеры

Отобразите полную спецификацию файла

Отобразите полную спецификацию файла файла, выбранного в диалоговом окне. Используйте disp и функции fullfile, чтобы добавить объяснительный текст и конкатенировать выходные значения file и path.

[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 в диалоговом окне путем определения '*. m' как входного параметра filter.

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

Задайте заголовок поля списка и диалогового окна фильтра

Создайте список расширений файла в выпадающем списке фильтра файла. Передайте входной параметр filter как массив ячеек из символьных векторов и разделите расширения файла точками с запятой.

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

Задайте фильтры и отфильтруйте описания

Создайте список расширений файла и дайте им описания путем передачи входного параметра filter как массива ячеек из символьных векторов. Первый столбец массива ячеек содержит расширения файла, и второе содержит пользовательские описания типов файлов. Этот пример также сопоставляет несколько типов файлов с описаниями 'Models' и 'MATLAB Files'.

[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 name, когда диалоговое окно откроется, передайте имя файла как входной параметр defname

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

Задайте путь по умолчанию и файл

Чтобы отобразить путь по умолчанию и имя файла в поле File name, когда диалоговое окно откроется, передайте полное имя файла как входной параметр defname.

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

Включите многофайловый выбор

Включите многофайловый выбор путем установки опции 'Multiselect' на 'on'. Пользователи могут выбрать несколько файлов путем удержания клавиши Shift или Ctrl и нажатия на имена файлов.

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

Входные параметры

свернуть все

Фильтр файла, заданный как вектор символов, массив ячеек из символьных векторов или массив строк.

  • Если filter является именем файла, то то имя файла появляется в поле File name. Расширение файла является значением фильтра по умолчанию. (Поле фильтра не маркировано и появляется справа от поля File name.)

  • filter может включать путь. Тот путь может содержать следующие символы:

    • .

    • ..

    • \

    • /

    • ~

    Например, '../*.m' перечисляет все файлы кода с расширением .m в папке выше текущей папки.

  • Если вы или пользователь включаете или звездочку (*) или вопросительный знак (?) в имени файла, то uigetfile не отвечает на нажатие Open. Диалоговое окно остается открытым, пока пользователь не нажимает Cancel или удаляет подстановочные символы из имени. Это ограничение применяется ко всем платформам, даже к файловым системам, которые разрешают эти символы в именах файлов

  • Если заданный путь не существует, то uigetfile открывает диалоговое окно в текущей папке.

  • Если filter является именем папки, то MATLAB отображает содержимое той папки. Поле File name пусто, и никакой фильтр не применяется. Чтобы задать имя папки, последний знак filter должен быть или наклонной чертой влево (\) или наклонной чертой (/).

  • Если filter является массивом ячеек из символьных векторов или массивом строк, он может включать два столбца. Первый столбец содержит список расширений файла. Дополнительный второй столбец содержит соответствующий список описаний. Эти описания заменяют стандартные описания в поле фильтра. Описание не может быть пустым.

Пример: 'myfile.m'

Пример: '../myfile.m'

Пример: '../..'

Заголовок диалогового окна, заданный как вектор символов.

Пример: 'Select a File'

Значение поля File name по умолчанию, заданное как вектор символов или скаляр строки. Значение defname может задать путь, или путь и имя файла.

  • Если вы задаете путь, он может содержать следующие символы:

    • .

    • ..

    • \

    • /

    • ~

  • Чтобы задать имя папки только, сделайте последний знак DefaultName или наклонной чертой влево (\) или наклонной чертой (/).

Пример: 'myfile.mat'

Пример: 'C:\Documents\my_MATLAB_files'

Пример: '..\myfile.mat'

Пример: '..\Documents\'

Мультивыберите режим, заданный как 'on' или 'off'. Если мультиизбранный режим выключен, то пользователь может выбрать один файл только. Если мультиизбранный режим включен, то пользователь может выбрать несколько файлов. Если пользователь выбирает несколько файлов, то они должны быть в той же папке; в противном случае MATLAB отображает диалоговое окно предупреждения. Библиотеки Microsoft® Windows могут охватить несколько папок.

Выходные аргументы

свернуть все

Имя файла, которое пользователь задал в диалоговом окне, возвращенном как вектор символов или массив ячеек из символьных векторов.

Массив ячеек из символьных векторов возвращен, когда 'MultiSelect' установлен в 'on', и пользователь выбирает несколько файлов. Каждый элемент массива содержит имя выбранного файла. Имена файлов в массиве ячеек сортируются в порядке, который использует платформа пользователя. Если пользователь выбирает несколько файлов, они должны быть в той же папке, в противном случае MATLAB отображает диалоговое окно предупреждения.

Если пользователь нажимает кнопку Cancel или окно близкая кнопка (X), то MATLAB возвращает значение файла как 0.

Путь к заданному файлу или файлам, возвращенным как вектор символов.

Если пользователь нажимает кнопку Cancel или окно близкая кнопка (X), то MATLAB возвращает значение файла как 0.

Выбранный индекс фильтра, возвращенный как целое число.

Фильтр является немаркированным управлением диалоговым окном справа от поля File name в диалоговом окне. Индексное значение фильтра соответствует элементу, выбранному в фильтре выпадающий список. Индекс первой строки равняется 1.

Если пользователь нажимает кнопку Cancel или окно близкая кнопка (X), то MATLAB возвращает индексное значение 0.

Больше о

свернуть все

Модальное диалоговое окно

Модальное диалоговое окно препятствует тому, чтобы пользователь взаимодействовал с другими окнами MATLAB прежде, чем ответить на модальное диалоговое окно.

Советы

  • Используйте путь и имя файла, которое uigetfile возвращает, чтобы открыть, считать или анализировать файл с помощью различных функций ввода и вывода в тулбоксах MATLAB и MATLAB. Например: перечисленный здесь.

    • imread для чтения изображений.

    • xlsread для чтения файлов Microsoft Excel.

    • open, edit или run с файлами кода MATLAB. Например, этот код создает диалоговое окно, чтобы получить имя файла кода MATLAB от пользователя, создает полное имя файла из возвращенных значений, и затем запускает заданный пользователями файл кода.

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

Альтернативная функциональность

Используйте функцию dir, чтобы возвратить отфильтрованный или неотфильтрованный список файлов в вашей текущей папке или папке, которую вы задаете. Функция dir может возвратить атрибуты файла также.

Смотрите также

| |

Представлено до R2006a