Principales respuestas
verificar la existencia de un archivo

Pregunta
-
hola ke tal buen dia
estoy trabajando con visual web developer 2010
bueno kiero hacer un hypervinculo con un archivo ke se encuentra en una carpeta de mi aplicacion pero antes de ke se haga el hyperviculo kiero ke se verifique que el archivo existe...
me explico mas ampliamente
puse un textbox en donde el usuario podra insertar el nombre del archivo y al darle clic a un boton se buscara el archivo dentro de la carpeta y cambiara la propiedad de un hypervinculo de URL con la direccion de la carpeta y el nombre tomado de el textbox pero quiero ke antes de ke se muestre el hipervinculo se verifique la existencia del archivo y ke si el archivo no existe muestre un mensaje de error ..
pueden ayudarme ya buske y probe dos o tres codigos pero simplemente no sirven siempre me marca ke no existe este es uno de los ke no funciona
If Dir("~/Archivos/5432345_1.jpg") <> vbNullString Then
Response.Write("existe el archivo")
Else : Response.Write("no existe el archivo")
End If
siempre me marca ke no existe ke puedo hacer ayuda plissss
Respuestas
-
Sugiero esta forma de comprobar si el archivo existe:
If System.IO.File.Exists(archivo) Then ...
Nota: aunque el archivo exista, si el programa no tiene permiso de acceder a su carpeta, considera que no existe. Si es una aplicación web, a estos efectos ten presente que el usuario con el que se ejecuta el código no es el usuario que llama al servidor desde un navegador, sino la identidad del pool de aplicaciones que rueda el IIS (salvo que juegues con el "identity impersonate" para cambiar las credenciales).
Otra nota: Veo que estás usando una ruta de archivo que empieza por tilde. Esto sólo vale para las propiedades de los controles web; en las rutas de ficheros accedidas por código tienes que poner una ruta de verdad, no vale usar la tilde para referirse a la raiz de la aplicación. Si es necesario, puedes usar Server.MapPath(...) para obtener la ruta correcta.
- Marcado como respuesta krlox1987 jueves, 1 de septiembre de 2011 15:30
Todas las respuestas
-
Sugiero esta forma de comprobar si el archivo existe:
If System.IO.File.Exists(archivo) Then ...
Nota: aunque el archivo exista, si el programa no tiene permiso de acceder a su carpeta, considera que no existe. Si es una aplicación web, a estos efectos ten presente que el usuario con el que se ejecuta el código no es el usuario que llama al servidor desde un navegador, sino la identidad del pool de aplicaciones que rueda el IIS (salvo que juegues con el "identity impersonate" para cambiar las credenciales).
Otra nota: Veo que estás usando una ruta de archivo que empieza por tilde. Esto sólo vale para las propiedades de los controles web; en las rutas de ficheros accedidas por código tienes que poner una ruta de verdad, no vale usar la tilde para referirse a la raiz de la aplicación. Si es necesario, puedes usar Server.MapPath(...) para obtener la ruta correcta.
- Marcado como respuesta krlox1987 jueves, 1 de septiembre de 2011 15:30
-
hola ke tal gracias por tu respuesta ...
espero me puedas seguir ayudando resulta ke bieno ya probe la instruccion ke me dijiste y si efectivamente no lo lee osea no lo reconoce obtengo el mismo resultado... dejame comentarte lo siguiente por ke necesito ayuda...
efectivamente si es una aplicacion web en la ke en una parte subo o guardo los archivos en la carpeta de archivos pero lo hago con la misma direccion con la tilde y bueno hasta ahora a nivel "local" probandolo en mi makina pues si ah servido .... no se si tenga problemas con esto pero bueno al momento me esta sirviendo .... ahora bueno necesito tmb poder abrir los archivos en otra pagina y bueno antes de abrirlos kisiera verificar ke el archivo existe .... pero no se si me puedas ayudar como direccionar bien el archivo por ke repito es una plicacion web y pues si le pogo una direccion de c:misdocumentos.... etc. pues a nivel de web no servira verdad??? ke puedo hacer en ese kaso amigo???
espero me puedas ayudar mas a profundidad gracias
-