uigetfile

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

Описание

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

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

пример

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

пример

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

Обычно отображаются только файлы с соответствующим расширением файла. На некоторых платформах, uigetfile отображает файлы, которые не совпадают с фильтром, но затемняют имена файлов. Если фильтр отсутствует или пуст, 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 функции для добавления пояснительного текста и конкатенации 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 - имя файла, затем это имя файла появляется в File name поле. Расширение файла является значением фильтра по умолчанию. (Поле фильтра не маркировано и отображается справа от поля File name.)

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

    • .

    • ..

    • \

    • /

    • ~

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

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

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

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

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

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

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

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

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

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

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

Подробнее о

свернуть все

Диалоговое окно Modal

Модальное диалоговое окно препятствует взаимодействию пользователя с другими окнами 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