Populate a uitable with files of directory

4 views (last 30 days)
Gustavo
Gustavo on 30 Aug 2014
Commented: Image Analyst on 30 Aug 2014
Can anyone help me populate a uitable with the path and file names from a directory?
Note: with "display (path)" is correctly printing all files is caught on.
or
% Populate a uitable with files of directory
nameDir = uigetdir();
listDir = strcat(nameDir, '/*.jpg');
files = dir(listDir);
size_ = length(files);
for l = 1: size_
nameImg = files(l, 1).name;
path = strcat(nameDir, '/', nameImg);
% display(path);
set(handles.uitable1, 'Data', {path});
end

Answers (1)

Geoff Hayes
Geoff Hayes on 30 Aug 2014
Gustavo - you just about have the correct code. All that is missing is to build the cell array of files names within the for loop, and then set the data of the uitable outside of the loop. Something like
nameDir = uigetdir();
% guard agains the user cancelling the uigetdir dialog
if ischar(nameDir)
listDir = strcat(nameDir, '/*.jpg');
files = dir(listDir);
numFiles = length(files);
% set the size of the cell array
paths = cell(numFiles,1);
% build the cell array of files
for l = 1:numFiles
nameImg = files(l,1).name;
paths{l} = fullfile(nameDir, nameImg);
end
set(handles.uitable1, 'Data', paths);
end
The above is very similar to what you have. The code just guards against the user cancelling the get directory dialog (returns 0 on pressing of the cancel button). It also makes use of fullfile to build the file name from the parts (the folder and file name) - that way, you don't have to be concerned with the forward or backward slash. Once the cell array is built, then the uitable is seer with the path data.
Try the above and see what happens!
  2 Comments
Image Analyst
Image Analyst on 30 Aug 2014
Edited: Image Analyst on 30 Aug 2014
I probably wouldn't use l (lower case L) as the name of a variable because it looks too much like 1 (one) and I (upper case i), but otherwise this is right on.
Image Analyst
Image Analyst on 30 Aug 2014
Gustavo's "Answer" moved here since it's not an answer to the original question, and so he can "Accept" Geoff's answer instead of his own:
Thank you for your help, your fix of code worked as I expected!
Again thank you by help!

Sign in to comment.

Categories

Find more on Programming in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!