필터 지우기
필터 지우기

folder in a directory

조회 수: 15 (최근 30일)
ricco
ricco 2011년 12월 1일
How do you use dir to obtain the names of folders in a directory. I can use
files = dir('*.xls');
to obtain information on the excel files within a specified directory but I have a directory which has 4 folders by using dir I obtain the names of each of the files, how is it possible to save the name of each file so that I can refer to each older within a loop.
cheers

채택된 답변

Junaid
Junaid 2011년 12월 1일
A = dir % you get everything in current directly of matlab. or if you want to explicitly mention any directory path then you can do it like this.
A = dir('/yourpath');
now A has all files and directories. So you can access by loop
A(1).name
to get only Directory indexes you can do following code.
myDir = find(vertcat(A.isdir));
now myDir has indexes of directory(folders only).
to print the name of directory to confirm, you can do it like this.
A(myDir).name
where first two are only the pointers. you can always start your loop from 3. Ignore first two indexes.
  댓글 수: 1
Junaid
Junaid 2011년 12월 1일
I updated the code, to display the name of Directors, last line should be
A(myDir).name

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

추가 답변 (1개)

David Young
David Young 2011년 12월 1일
It's perhaps worth noting that 'folder' and 'directory' mean the same thing. Anyway, do you want something like this:
files = dir; % assume starting from current directory
filenames = {files.name};
subdirs = filenames([files.isdir]);
for s = 1:length(subdirs)
subdir = subdirs{s};
% process subdirectory
disp(subdir); % for example
end
  댓글 수: 5
ricco
ricco 2011년 12월 1일
I've attempted:
for i=1:length(f)
files(i)=dir(fullfile(path,f(i),'*.xls'));
end
but an error appears!
ricco
ricco 2011년 12월 1일
works now.
for i=1:length(f)
files{i}=dir(fullfile(f{i},'*.xls'));
end
thanks for your help.

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

카테고리

Help CenterFile Exchange에서 File Operations에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by