INICIO   NOTICIAS Y ARTICULOS   SOBRE ESTE SITIO   FOROS  
Thursday, March 11, 2010
EL INTERNET
NEGOCIOS
SOCIEDAD
TECNOLOGIA
SEGURIDAD Y IT
DESARROLLADOR
SOFTWARE
TODOS
¡FOROS ABIERTOS NUEVAMENTE!
TU DIRECCION IP
Comunicados de Prensa
Tiene alguna información que compartir con la comunidad cibernética en Puerto Rico? Déjenos saber! Envíe su comunicado de prensa aqui.

 

 

Noticias y Artículos


DESARROLLADOR
Entrado: 11/28/2009 8:05:06 PM
Evaluado: 0/5 con 0 comentarios.
Imprimir Artículo | Añadir a Facebook

Como determinar si un archivo existe en el servidor en ASP Clásico

Por Ronald Flores, Puerto Rico Internet News

Todo programador ASP debe contar con una librería de funciones que son comunes y de mucha utilidad al momento de desarrollar aplicaciones en ASP clásico. Estas funciones, las cuales pueden ser modificables, proveen métodos sencillos y fácilmente disponibles para realizar tareas repetitivas. Una de éstas lo es FileExists.

El método FileExists es uno integrado dentro del objeto FileSystemObject de ASP clásico. Este tiene una funcionalidad sencilla: el determinar si un archivo específico existe dentro de la estructura interna de un servidor. El mismo se utiliza de la manera:

FileSystemObject.FileExists(filename)

Donde filename es el nombre de un archivo dentro de la estructura de la raíz (root) del servidor y la función devuelve TRUE o FALSE dependiendo del resultado.

Consideraciones al utilizar fileexists

Es necesario entender que fileexists funciona atado a la estructura del servidor. No osbtante, esta estructura es a nivel de raíz o "root". El parámetro filename desprende de la raíz física del servidor. Supongamos que usted tiene un archivo en una carpeta en su servidor, por ejemplo "http://www.mipagina.com/fotos/1.jpg". Si intentamos el siguiente código:

dim fs
set fs=Server.CreateObject("Scripting.FileSystemObject")
if fs.FileExists("http://www.mipagina.com/fotos/1.jpg")=true then
response.write("¡Archivo Existe!")
else
response.write("¡Archivo NO Existe!")
end if
set fs=nothing
%>



El código no funcionará y devolverá un error porque el archivo "http://www.mipagina.com/fotos/1.jpg" no existe dentro de la estructura del servidor. El siguiente código sería correcto:

dim fs
set fs=Server.CreateObject("Scripting.FileSystemObject")
if fs.FileExists("c:\inetput\wwwroot\fotos\1.jpg")=true then
response.write("¡Archivo Existe!")
else
response.write("¡Archivo NO Existe!")
end if
set fs=nothing



Note que la estructura correcta para enviar el parámetro de filename está parametrizado según la estructura física de su servidor. Pero muchas veces este método es inseguro e inpráctico por varias razones: 1) si usted tiene sus páginas en un hosting remoto no es bueno especificar en donde se encuentra físicamente su sitio web instalado, y 2) muchas compañías de hosting esconden este valor por motivos de seguridad. Entonces ¿qué podemos utilizar? Utilizamos entonces el método Server.MapPath.

Utilizando Server.MapPath

Otra colección de mucha utilidad para el programador ASP es la colección Server. Dentro de ésta encontramos el método .MapPath, el cual devuelve (o mas bien, resuelve) la estructura del servidor para uso interno del programa. Por ejemplo, si utilizamos el siguiente código:

response.write Server.MapPath("/fotos")



El resultado será: c:\hosting\fotos\ debido a que dentro del servidor, la carpeta "/fotos" se encuentra físicamente en c:\hosting\fotos\

Con esto en mente, podemos modificar el código arriba para encontrar la localidad del archivo que estamos buscando y que el programa nos devuelva la localidad física en disco del archivo que deseamos encontrar:

dim fs
set fs=Server.CreateObject("Scripting.FileSystemObject")
if fs.FileExists(Server.MapPath & "\fotos\1.jpg")=true then
response.write("¡Archivo Existe!")
else
response.write("¡Archivo NO Existe!")
end if
set fs=nothing



Cómo Utilizar la Función FileExists


Basado en las premisas arriba mencionadas, podemos entonces crear una función que nos diga si un archivo en específico existe dentro de la estructura del servidor.

1 function fileExists(inFile)
2 on error resume next
3 if inFile <> "" then
4 Set FSO = Server.CreateObject("Scripting.FileSystemObject")
5 fic_path = Server.MapPath(inFile)
6 fileExists = FSO.FileExists(fic_path)
7 set FSO = nothing
8 end if
9 end function



PASO A PASO
Esta función hace lo siguiente:
LINEA 1
Declaramos la función con el nombre fileExists y determinamos que la misma tiene una variable de entrada llamada inFile. Esta variable cargará internamente el nombre del archivo que deseamos buscar.

LINEA 2
Declaramos on error resume next de tal forma que de ocurrir un error, el programa continuará operando la próxima instrucción en el caso de que algo suceda mal o encuentre un error.

LINEA 3
Hacemos un poco de "error catching" utilizando la condición IF. Si en algún momento la variable inFile está vacia (no hay parámetro especificado) la función no correrá.

LINEA 4
Declaramos la variable FSO y creamos un objeto de tipo FileScriptingObject.

LINEA 5
Creamos la variable fic_path a la cual le añadiremos (resolveremos) la carpeta raíz al archivo buscado utilizando Server.MapPath.

LINEA 6
Utilizamos el nombre de la función fileExists y le asignamos el resultado del método FileExists. Con esto asignamos el valor del resultado a la función para asó devolver el mismo al programa. Si el archivo existe, le asigna TRUE (Cierto) al valor de la función. Si no existe, le asigna FALSE (falso) a la función.

LINEA 7
Una vez terminado, removemos el objeto FSO de la memoria del servidor. Este paso es muy importante ya que si usted utiliza muchas veces esta función, si no cierra los objetos esto puede causar un "leak" de memoria y recursos ya que los objetos permanecen asignados en memoria si usted no los remueve.

Como llamar la función

Para hacer uso de la misma, podemos hacerlo de la siguiente manera:

for i = 0 to 10
archivo_a_buscar = "/fotos/" & i & ".jpg"
existe_archivo = fileExists(archivo_a_buscar)
if existe_archivo then
response.write "Archivo " & archivo_a_buscar & " EXISTE.
"
else
response.write "Archivo " & archivo_a_buscar & " NO EXISTE.
"
end if
next




Este artículo ha sido visto 221 veces.
Más artículos y Noticias
Noticias Relacionadas
Nuevas fotos surgen del Microsoft Courier 3/11/2010 3:11:56 AM
iPad de Apple estará disponible 3 de abril 3/8/2010 5:42:44 AM
Once aeropuertos contarán con detectores de cuerpo completo 3/6/2010 3:02:21 PM
Comentarios
No reviews yet. Be the first one to rate this location!
Evalúe Este Artículo
Evalúe: Poco interés1 2 3 4 5 ¡Muy interesante!
Título:  
Por:  
Comentarios:
(Max 255 chars)
 
Anuncios
 
©2008 PuertoRico Internet News. Todos los derechos, reservados. Prohibida la reproducción de cualquier material sin permiso del autor. Para información adicional, comuníquese a articulos@printernetnews.com
Windows 7
Updates y Parchos

Microsoft lanza parcho que repara problema que puede dañar sus tarjetas SD

11/28/2009 8:43:25 PM
Más noticias sobre Windows 7
Transición DTV 2009
Transición Televisión Digital (DTV)

Congreso aprueba medida que atrasa fecha límite para transición digital hasta junio 12

2/4/2009 8:09:33 PM
Más articulos sobre la Transición Televisión Digital 2009
Noticias Anteriores
Software  >> Sistemas Operativos

Windows 7 se convierte en Sistema Operativo de mayor rapidez en ventas

La empresa Microsoft ha vendido 90 millones de copias de su sistema operativo Windows 7 desde que el...
3/4/2010 6:29:49 AM
Tecnología >> Celulares y Equipos Móviles

Apple pide a corte bloquear teléfonos de HTC

La empresa Apple hizo una petición a la Comisión Internacional de Intercambio de los E.E.U.U. (ITC,...
3/4/2010 6:09:13 AM
Internet >> Sitios Nuevos

PRAnuncia.com rediseña plataforma

PRAnuncia.com anunció el pasado mes el rediseño y actualización de su plataforma de promoción y anun...
3/2/2010 11:10:06 AM
Desarrollador >> Social Networking

Cómo mostrar tu último update de Twitter en tu página

Con la popularidad de Redes de Intercambio Social es bueno poder integrar todas estas redes en tu pr...
2/28/2010 6:39:46 AM
Seguridad y IT >> Seguridad en la Red

Dos escuelas en China implicadas en Ciber-ataques a Google

Dos escuelas en China han sido implicados a ciber ataques a Google y docenas de otras compañías el a...
2/22/2010 6:53:27 AM
Negocios >> Generales

Departamento de Justicia aprueba acuerdo entre Yahoo, Microsoft

El Departamento de Justicia de los E.E.U.U. dijo que aprobará la asociación de publicidad entre Yaho...
2/22/2010 6:23:20 AM
 

- Attractions and Sights in Puerto Rico

- MP3 and Media Players

- Freeware software

©2007 Puerto Rico Internet News | InternetNewsPR.com
Puerto Rico Tourism | Freeware Software | Cine en Puerto Rico