2016-07-13 4 views
-1

Я хочу создать gui, в котором кнопка нажата, будет искать файл/папку, и когда это произойдет, это даст путь к другая функция, которая будет выполнять некоторую обработку после того, как она получит путь. До сих пор я сделал этоКак получить путь к папке и указать этот путь к отдельной функции в matlab

function pushbutton2_Callback(hObject, eventdata, handles) 
.... 
.... 

folder_name=uigetdir('File Selector'); 

Это просмотреть папку, и теперь я хочу, чтобы дать путь этой папки для этой функции

source_dir = 'here the path of that folder comes'; 
source_files = dir(fullfile(source_dir, '*.txt/etc')); 

Другими словами, если я объясню, что кнопочный я начинает выполнение эта функция, но сначала она выбирает файл/каталог для ввода этой функции. Я попытался использовать некоторые примеры, но я новичок в создании gui, так что я еще не успел. Любая помощь будет оценена. Спасибо.

редактировать ..

Это то, что я пытался сделать.

function pushbutton2_Callback(hObject, eventdata, handles) 
... 
folder_name=uigetdir('File Selector'); 
global folder_path 
folder_path=genpath(folder_name); 

%% FTN, где он будет использоваться

function abc %% this function is also called in another function. 

global folder_path 

source_dir = folder_path; %%% where all the files are placed 
src_files = dir(fullfile(source_dir, '*.txt')); 

затем цикл, чтобы загрузить все файлы

+0

Это не совсем ясно, что именно ваша проблема. Это передать путь в 'folder_name' в качестве аргумента функции? Как выглядит эта функция? Где вы его определили? Еще один код будет полезен ... – bushmills

+0

@ bushmills мое намерение состоит в том, чтобы получить путь к папке в папке_имя и указать путь к source_dir. Я попытался сделать путь к этой папке глобальной переменной и передать эту глобальную переменную в source_dir, но ее не работает. Сначала я использовал путь в source_dir вручную, как «c: \ blah \ blah», но теперь я делаю gui, в котором кнопка выбирает папку и передает путь этой папки в эту функцию, которая начнет работать. – Muhammad

+0

Итак, вы хотите сделать следующее: 1. Получить путь к папке и сохранить ее в 'folder_name'; 2. передать 'имя_папки' функции, вызванной функцией push-button-callback? 3. Передайте строку 'folder_name' в' source_dir'. Это правильно? – bushmills

ответ

0
function pushbutton2_Callback(hObject, eventdata, handles) 

folder_name=uigetdir('File Selector'); 

listFiles(folder_name); 

end 

% put this function in the generated m-file 
function listFiles(folder_name) 

source_files = dir(fullfile(folder_name, '*.txt/etc')); 

% do something with the files 

end 
+0

его не работает, продолжайте получать эту ошибку «Undefined function» listFiles 'для входных аргументов типа «char». » есть ли способ, которым мы можем сделать это глобальным, я ставил выше того, что я пытался использовать. – Muhammad

+0

вам нужно будет поместить все функции в один файл m, чтобы вы не получили неопределенную ошибку функции. Не используйте глобальные переменные, если вам это не нужно. Например, случайные изменения глобальных переменных часто являются причиной ошибок, которые очень трудно найти. – bushmills

+0

Я попробовал снова, создав путь как глобальное varaibles и его работу сейчас. Вы правы, глобальные переменные не являются хорошим выбором, но в моей ситуации они не используются снова и снова только для хранения имени файла и передачи этого имени один раз другой функции. – Muhammad

Смежные вопросы