Display file names from current directory if more than n characters

Hi,
I want to write code that returns the filenames in my current directory, but only those filenames with more than n characters.
My code so far:
directory = dir('*.*'); % specifiy files, leave out folders
% remove the two '.' and '..' folders at the top
if length(directory) >= 3
directory = directory(3:end);
end
But how do I select only those filenames with more than n characters? I thought about setting up a logical vector, but I don't know how to do that. Does anybody have any suggestions?
Many thanks,
Dobs

2 Kommentare

Stephen23
Stephen23 am 30 Nov. 2021
Bearbeitet: Stephen23 am 30 Nov. 2021
"But how do I select only those filenames with more than n characters?"
Is that actually the goal, or is this really just your attempt to remove the dot directory names?:
Note that the dot directories are not guaranteed to be the first and second names returned, so your code already has a bug in it:
Dobs
Dobs am 30 Nov. 2021
Bearbeitet: Dobs am 30 Nov. 2021
Yes, selecting the filenames with more than n characters is actually the goal because it's for an assignment.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Stephen23
Stephen23 am 30 Nov. 2021
Bearbeitet: Stephen23 am 30 Nov. 2021
n = 5;
P = 'absolute or relative path to where the files are saved';
S = dir(fullfile(P,'*.*'));
C = {S(~[S.isdir]).name}; % comma-separated lists
X = cellfun(@numel,C)>n;
C = C(X)

Weitere Antworten (0)

Kategorien

Produkte

Version

R2021b

Gefragt:

am 30 Nov. 2021

Kommentiert:

am 30 Nov. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by