3

我正在使用dir函数列出文件夹的内容,但它给出...前两个文件夹。有什么办法可以摆脱这个愚蠢的过程。

我可以在dir函数中使用正则表达式吗?(如果可以的话,它可以是一个解决方案)

4

3 回答 3

6

我不知道任何内置解决方案,但我倾向于执行以下操作:

d = dir ('C:\');
d(~[d.isdir])= []; %Remove all non directories.
names = setdiff({d.name},{'.','..'});

setdiff命令删除不需要的元素。


另一种摆脱通配符的廉价方法...使用通配符(仅限 Windows):

d = dir ('C:\*.*');
于 2012-08-27T09:24:56.590 回答
4

这个怎么样

list = dir('/var/temp');
list = list(3:end,:);

这当然是假设前两个条目确实是.并且..在所有操作系统上可能并非如此

于 2012-08-27T09:28:43.013 回答
2

根据本文档的声音,dir仅显示操作系统本身返回的内容,因此我怀疑您是否能够在不对返回的列表进行一些后期处理的情况下抑制它

http://www.mathworks.co.uk/help/techdoc/ref/dir.html

dir 确实支持通配符 *

于 2012-08-27T09:25:31.270 回答