Check if URL exists

Does anyone know how to check if a URL exists? The function exist seems to only work of file paths through a computer.

Réponses (1)

Walter Roberson
Walter Roberson le 30 Juil 2012

1 vote

It is possible to detect that a URL does exist, but it is not always possible to detect that a URL does not exist compared to it existing but you not being permitted to examine it.

5 commentaires

Ryan
Ryan le 30 Juil 2012
Walter:
Not sure what you're trying to say. What might be useful is that the URL is an FTP file that I'm trying to access. My problem is that if it doesn't find the file my code freaks out so I'm trying to implement an IF statement and if the URL doesn't exist, use "continue" to jump over it
Jan
Jan le 31 Juil 2012
@Ryan: Your original question is vague. Most of all the "existence" of an URL is not well defined. Walter's answer reveals this leak.
If you post the command, you use to access the file on the FTP-server, a suggestion for catching an error is much easier than writing the complete program from the scratch. So please add more details by editing the original question.
Walter Roberson
Walter Roberson le 31 Juil 2012
In the case of ftp, then fetching the URL without the final object should give you a directory of objects at that level, provided that the ftp server uses the common (but not guaranteed) strategy of interpreting a request for a directory to mean to return the directory listing.
Edward Strobach
Edward Strobach le 25 Avr 2017
@Walter, that first response was deep
Edward Strobach
Edward Strobach le 26 Avr 2017
Modifié(e) : Walter Roberson le 26 Avr 2017
I found for files online, that I can create a function that examines, iteratively, the presence of a file within a URL to determine whether or not it exists.
Example
function [info,status] = FileExists(t)
t = num2str(8965);
url = strcat('http://podaac-opendap.jpl.nasa.gov/opendap/allData/oscar/preview/L4/oscar_third_deg/oscar_vel',t,'.nc.gz');[~,status] = urlread(url);
filename = strcat('oscar_vel',t,'.nc.gz');
try
Info = ncinfo(url);
status = 1;
catch
Info = [];
status = 0;
end
If status is 1, then file exists, if status is 0, the file doesnt' exist. You can use a tilde for the first output within the square brackets to suppress the output if you only want to look at the status

Connectez-vous pour commenter.

Catégories

En savoir plus sur File Operations dans Centre d'aide et File Exchange

Question posée :

le 30 Juil 2012

Community Treasure Hunt

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

Start Hunting!

Translated by