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

 Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 6 de Sept. de 2012
Editada: Azzi Abdelmalek el 6 de Sept. de 2012
any(size(dir([yourFolderName '/*.pdf' ]),1))

9 comentarios

Aadil
Aadil el 6 de Sept. de 2012
Thanks but I forgot to mention I need a true or false output
José-Luis
José-Luis el 6 de Sept. de 2012
Editada: José-Luis el 6 de Sept. de 2012
~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
Jan
Jan el 6 de Sept. de 2012
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))
Aadil
Aadil el 6 de Sept. de 2012
A quick restart of matlab seems to have sorted it out!
Looks like I was overworking matlab : D
Aadil
Aadil el 6 de Sept. de 2012
And all your answers worked so thanks to everyone
Dev-iL
Dev-iL el 22 de Mayo de 2016
It's probably better (in terms of different OS support) to use fullfile instead of constructing the path manually.

Iniciar sesión para comentar.

Más respuestas (1)

Dr. Seis
Dr. Seis el 6 de Sept. de 2012
Editada: Dr. Seis el 6 de Sept. de 2012
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 comentarios

Aadil
Aadil el 6 de Sept. de 2012
Ok i'll give this a go, Thanks
Jan
Jan el 6 de Sept. de 2012
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 .

Iniciar sesión para comentar.

Categorías

Más información sobre File Operations en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 6 de Sept. de 2012

Comentada:

el 7 de Sept. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by