Принять определенный тип файла Matlab - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть графический интерфейс, использующий кнопку Броу для поиска файла:

function Browse(app, event)
     FileName,FilePath ]= uigetfile();
     ExPath = fullfile(FilePath, FileName);
     app.FileTextArea.Value = ExPath;  
end

И я сохраняю путь к файлу в текстовой области. У меня есть другая кнопка, которая запускает скрипт Matlab с путем к файлу в качестве параметра, и поэтому я хотел бы принять только определенный тип файла (.ctm, который является моим собственным типом файла), если это возможно, как это:

if file is .ctm
    do something
else 
    print('a .ctm file is needed')

Спасибо за помощь

1 Ответ

1 голос
/ 15 апреля 2019

Есть две вещи, которые вы можете сделать:

  1. Отображать только файлы с определенным расширением с uigetfile()

    [fileName, dataDir] = uigetfile('*.ctm', 'Select a *.ctm file', yourDefaultPth);
    
  2. Убедитесь, что выбранный файл имеет расширение .ctm

    [data.dir,data.fileName,data.ext] = fileparts(fullfile(dataDir, fileName)); % dataDir and fileName from pt. 1
    
    if strcmp(data.ext, '.ctm')
        % do something
    else 
        print('a .ctm file is needed')
    end
    

Имейте в виду, что ни один из этих двух способов не подтвердит, что содержимое файла соответствует ожидаемому, и если кто-то вручную изменит расширение файла, ваша программа, скорее всего, завершится сбоем. Это хорошо для начала, но если вы хотите сделать более надежную проверку, вам следует убедиться, что содержимое файла правильное, а не его расширение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...