Uigetdir to pick multiple directories

109 visualizzazioni (ultimi 30 giorni)
Robbie
Robbie il 25 Nov 2011
Commentato: Image Analyst il 20 Mag 2020
I was wondering if anyone knows a simple way how to use uigetdir to select multiple directory paths in a similar way to using uigetfile with 'multiselect','on'
Thanks

Risposte (2)

Image Analyst
Image Analyst il 25 Nov 2011
Not that I know of with uigetdir. However it could work if you searched your hard drive for directories and then listed them all in a very wide listbox where the user could click on multiple directory names right from the listbox. You could use genpath() to load up the listbox.
  3 Commenti
Terry Furqan
Terry Furqan il 20 Mag 2020
i use this to create
root = uigetdir;
sd = genpath(root);
subdir = regexp(sd,';','split');
for k = 2:length(subdir)
F = dir(fullfile(char(subdir(k)), '*.csv')); %some process
end
Image Analyst
Image Analyst il 20 Mag 2020
You don't need to do char(subdir(k)) -- you can simply do subdir{k} to get the contents of the cell. See the FAQ.
startingFolder = pwd;
root = uigetdir(startingFolder);
allSubfolders = genpath(root)
subFolders = regexp(allSubfolders, ';', 'split')
for k = 2 : length(subFolders)
% Get this subfolder.
thisSubFolder = subFolders{k};
% Get a list of CSV files in this subfolder.
theseFiles = dir(fullfile(thisSubFolder, '*.csv'));
fprintf('Found %d CSV files in %s.\n', length(theseFiles), thisSubFolder);
% Some process to use the files.
end
Also, to be clear, this code does not allow the user to specify multiple folders individually. It allows the user to pick a top level folder, and then ALL subfolders under that top folder are examined.

Accedi per commentare.


Robbie
Robbie il 25 Nov 2011
I found a function on the file exchange that seems to work the way i want it 'uipickfiles' but i am open to other ways how to do this. Thanks

Categorie

Scopri di più su Environment and Settings in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by