How can I use "dir" with multiple search strings? or join the results of two dir calls?
55 次查看(过去 30 天)
显示 更早的评论
Hi,
How can I use "dir" with multiple search strings? or join the results of two dir calls?
I basically want to do something like this:
dir('*.txt','*.doc')
so that I get a list of the .txt and .doc files.
Or join the results of two dir calls.
0 个评论
采纳的回答
更多回答(3 个)
Seth DeLand
2011-2-28
You can save the output of DIR as a structured array, or in your case two structured arrays that can then be combined:
files1 = dir('*.txt');
files2 = dir('*.doc');
allfiles = [files1;files2];
You can then access names by indexing into the array:
filename = allfiles(7).name;
This will return the name of the 7th file in the array.
0 个评论
Matt Tearle
2011-2-28
Do you just need the filenames, or do you actually need file info as well? If it's just the names, the simplest way (I think) is to use ls rather than dir:
x = cellstr(ls('*.m'));
y = cellstr(ls('*.txt'));
[x;y]
0 个评论
Walter Roberson
2011-3-1
On Unix systems, if you just need the names, the simplest way would probably be to use
[junk, allfiles] = system('ls *.{txt,doc}');
This would not work on Windows. Also, it can not be shortened to
allfiles = ls('*.{txt,doc}');
as Matlab's ls function deliberately escapes any unix meta-characters before sending them to ls.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 File Operations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!