exponenta event banner

uigetfile

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

Описание

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

[file,path] = uigetfile возвращает имя файла и путь к нему, когда пользователь нажимает кнопку «Открыть». Если пользователь нажимает кнопку Cancel или кнопку закрытия окна (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 расширение в диалоговом окне путем указания '*. m' в качестве filter входной аргумент.

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

Указать список фильтров и заголовок диалогового окна

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

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

Определение фильтров и описаний фильтров

Создайте список расширений файлов и дайте им описания, передав filter входной аргумент как массив ячеек символьных векторов. Первый столбец массива ячеек содержит расширения файлов, а второй - пользовательские описания типов файлов. Этот пример также связывает несколько типов файлов с '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 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 является именем файла, то это имя файла появляется в поле Имя файла. Расширение файла является значением фильтра по умолчанию. (Поле фильтра не помечено и отображается справа от поля Имя файла.)

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

    • .

    • ..

    • \

    • /

    • ~

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

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

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

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

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

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

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

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

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

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

Значение поля Имя файла по умолчанию, указанное как вектор символов или скаляр строки. 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