issues of Sensitive in 'dir' function
20 views (last 30 days)
Show older comments
There is a file named abc.m, but I'm not sure the name is abc.m or Abc.m.
How to determine the true name of file?
I have a test with the true name of file is abc.m
a=dir('abc.m') %a.name=abc.m
and
b=dir('Abc.m') %b.name=Abc.m,
So, I don't know how to deal this question.
Accepted Answer
Jan
on 28 Jan 2013
Edited: Jan
on 9 Oct 2015
d = dir('*.m');
match = strcmpi({d.name}, 'abc.m'); % [EDITED] strcmp*i*
Name = d(match).name;
1 Comment
Paul Martin
on 9 Oct 2015
I think the correct function is case-insensitive string comparison with strcmpi:
match = strcmpi({d.name}, 'abc.m')
More Answers (1)
Azzi Abdelmalek
on 28 Jan 2013
Edited: Azzi Abdelmalek
on 28 Jan 2013
d=dir('*.m');
f1=char(d.name);
f=upper(f1);
idx=find(cellfun(@(x) isequal(x,upper('Abc.m')),cellstr(f)));
out=f1(idx,:)
1 Comment
Jan
on 28 Jan 2013
There is no reason to convert the names into a CHAR matrix f1. Instead of ISEQUAL inside a CELLFUN, STRCMPI compares directly.
See Also
Categories
Find more on File Operations 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!