none
verificar la existencia de un archivo RRS feed

  • 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

     
    miércoles, 31 de agosto de 2011 17:33

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
    miércoles, 31 de agosto de 2011 21:15

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
    miércoles, 31 de agosto de 2011 21:15
  • 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

    jueves, 1 de septiembre de 2011 15:34
  • AAAAAA KE KREES AMIGO MUCHAS GRACIAS YA FUNCIONO UTILIZE TU CODIGO Y EL OTRO TMB DE SERVER.MAPPATH YYY FUNCIONO BIEN MUCHAS GRACIAS AMIGOOOO

     

    jueves, 1 de septiembre de 2011 15:51