omitting pointers when listing folder contents

In order to list folder contents I use:
TopFolder = dir('E:\');
Say if I had one file within that specific folder MATLAB returns 3 structures where the name of the first two are just pointers i.e. '.' and '..'.
How is it possible to omit these? I currently just omit the first two by:
a = SubFolder(3:end)
then use
a.name
to obtain the name. Is there a more accurate way of doing this i.e. supported by the documentation?

 채택된 답변

Jan
Jan 2012년 6월 12일

0 개 추천

It is not documented, that . and .. are the first two elements replied by DIR. Therefore checking the names is safer:
DirList = dir('E:\');
DirName = {DirList.name};
DirList(strcmp(DirName, '.')) = [];
DirList(strcmp(DirName, '..')) = [];
To omit all files and folders starting with a dot:
DirList = dir('E:\');
DirName = {DirList.name};
DirList(strncmp(DirName, '.', 1)) = [];
Now "DirList" is the cleaned list of files and folders.

댓글 수: 1

But will still have any folders whose names did not happen to start with '.'

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Walter Roberson
Walter Roberson 2012년 6월 12일

0 개 추천

TopFolder = dir('E:\');
TopFolder([TopFolder.isdir]) = [];

카테고리

도움말 센터File Exchange에서 File Operations에 대해 자세히 알아보기

질문:

2012년 6월 12일

Community Treasure Hunt

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

Start Hunting!

Translated by