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

 Accepted Answer

any(size(dir([yourFolderName '/*.pdf' ]),1))

9 Comments

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.

Sign in to comment.

More Answers (1)

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 Comments

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 .

Sign in to comment.

Categories

Community Treasure Hunt

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

Start Hunting!