How to check if a file of certain type exists in folder?

Hi All,
How can I check if a .pdf file exists in a folder
I know I can use the Exist command if I know the full filename, but I don't have the file name
Thanks,
EDIT: I will need the output as true or false

 채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2012년 9월 6일
편집: Azzi Abdelmalek 2012년 9월 6일
any(size(dir([yourFolderName '/*.pdf' ]),1))

댓글 수: 9

Thanks but I forgot to mention I need a true or false output
~isempty( dir ( fullfile ( your_path , '*.pdf' ) ) );
True if there is at least one pdf.
False if there is no pdf.
How does dir work?
It seems to find create an output array not matter what file extension I put:
>> dir('*.bollocks')
ans =
10x1 struct array with fields:
name
date
bytes
isdir
datenum
See "help dir". It looks for the files in the current folder, when no folder has been specified. See the "fullfile" in Jose-Luis example.
It seems, like you have 10 files matching the filters "*.bollocks" in the current folder.
That means you do have 10 files with the extension .bollocks in your working directory. I am not one to judge file names :P, but just to make sure, i tested in my machine and here is what i got.
bla = dir('*.youdontexist')
bla =
0x1 struct array with fields:
name
date
bytes
isdir
datenum
I would suggest you create an empty directory, make it your working directory and test again. If you have the same results, then we have an interesting problem.
any(size(dir([yourFolderName '/*.pdf' ]),1))
A quick restart of matlab seems to have sorted it out!
Looks like I was overworking matlab : D
And all your answers worked so thanks to everyone
It's probably better (in terms of different OS support) to use fullfile instead of constructing the path manually.

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

추가 답변 (1개)

Dr. Seis
Dr. Seis 2012년 9월 6일
편집: Dr. Seis 2012년 9월 6일
You could try doing something like:
dir_struct = dir( fullfile(your_path,'*pdf') );
if numel(dir_struct) == 0
% then there are no files with extension "pdf"
else
% there is a "pdf" file in your directory
% dir_struct(1).name gives the file name of the first "pdf" file listed
end

댓글 수: 3

Ok i'll give this a go, Thanks
I assume you need '*.pdf' with the dot.
Using the code by @Dr. Seis, how can i check if .pdf exists i.e, not based on number of elements but rather by checking the file name .

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

카테고리

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

Community Treasure Hunt

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

Start Hunting!

Translated by