Foros del Web » Programando para Internet » ASPX (.net) »

Borrar archivo en el cliente

Estas en el tema de Borrar archivo en el cliente en el foro de ASPX (.net) en Foros del Web. Hola. Pude que sea una pregunta tonta, pero existe alguna manera de eliminar un fichero de un maquina cliente? en la aplicación el cliente va ...
  #1 (permalink)  
Antiguo 17/03/2010, 13:25
Avatar de chen08  
Fecha de Ingreso: marzo-2010
Mensajes: 12
Antigüedad: 14 años, 1 mes
Puntos: 0
Borrar archivo en el cliente

Hola.
Pude que sea una pregunta tonta, pero existe alguna manera de eliminar un fichero de un maquina cliente?

en la aplicación el cliente va subiendo archivos al servidor mediante input file, y ya que el cliente interviene seleccionando el archivo, no se si hay manera para una vez realizada la subida poder eliminarlo.

Un saludo.
  #2 (permalink)  
Antiguo 17/03/2010, 13:39
Avatar de AWesker  
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 27
Respuesta: Borrar archivo en el cliente

En efecto... se puede .

Puedes lograrlo usando (en C#)
System.IO.File.Delete(RutaAccesoalArchivo);

Pero antes, debes verificar la existencia de dicho archivo y por supuesto los permisos para lograrlo.
Saludos...
  #3 (permalink)  
Antiguo 17/03/2010, 13:48
Avatar de chen08  
Fecha de Ingreso: marzo-2010
Mensajes: 12
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Borrar archivo en el cliente

System.IO.File.Delete no sirve solo para el servidor???

ademas que con el input type="File" no consigo ver la ruta completa, (this.FileSelection.PostedFile.FileName) solo me da el nombre y extensión.. pero no el path completo
  #4 (permalink)  
Antiguo 17/03/2010, 14:21
Avatar de AWesker  
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 27
Respuesta: Borrar archivo en el cliente

En realidad en File.Delete(Ruta) lo puse con System.IO.File.Delete para no escribir el using. Y pues no es exclusivo del lado del servidor.

Ah, y si usas this.FileSelection.PostedFile.FileName obtienes la ruta completa hacia el archivo. Si no me crees, asignale temporalmente el valor del FileSelection (supongo que es el nombre del Input File) a una variable y te vas a dar cuenta. Eso si, mucho cuidado con los postback porque hacen que se pierdan los valores de los InputFile ó FileUpload.

Me avisas por cualquier cosa...
  #5 (permalink)  
Antiguo 17/03/2010, 15:32
Avatar de chen08  
Fecha de Ingreso: marzo-2010
Mensajes: 12
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Borrar archivo en el cliente

Gracias por tus comentarios...

pero me doy de cabezazos con una cosa tan simple, no se que pasa que no me sale.
este es el código que utilizo:

if (this.FileSelection.PostedFile.FileName != "") {
this.FileSelection.PostedFile.SaveAs(ruta);
File.Delete(this.FileSelection.PostedFile.FileName );
}

y guarda el archivo en la ruta especificada, pero pasa de borrar...
y es que this.FileSelection.PostedFile.FileName me devuelve solo el nombre del archivo
en cambio poniendo la ruta a mano para el borrado lo elimina perfectamente, por lo menos en local
  #6 (permalink)  
Antiguo 17/03/2010, 15:54
Avatar de AWesker  
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 27
Respuesta: Borrar archivo en el cliente

Intenta con esto (acabo de probarlo y funciona bien)
Código:
 
            try
            {
                 string _Archivo = String.Empty;
                _Archivo = File1.PostedFile.FileName;
                if(System.IO.File.Exists(_Archivo))
                {
                    System.IO.File.Delete(_Archivo);
                }
            }
            catch (Exception ex)
            {
            }
  #7 (permalink)  
Antiguo 18/03/2010, 03:06
 
Fecha de Ingreso: marzo-2009
Mensajes: 83
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Borrar archivo en el cliente

Me apunto al hilo que me venís de maravilla!!

estoy haciendo una aplicación donde se pueden descargar ficheros, y quiero q al iniciar sessión se borre la carpeta q los contiene, si existe, y cree una nueva (para no saturar el servidor). esto lo hago con;

Código:
If System.IO.Directory.Exists(Directorio & Nombre) Then
            System.IO.Directory.Delete(Directorio & Nombre, True)
            System.IO.Directory.CreateDirectory(Directorio & Nombre)
        Else
            System.IO.Directory.CreateDirectory(Directorio & Nombre)
        End If
y funciona perfectamente, el problema es q al ejecutar este trozo de código, se borran las variables session con las q trabajo!!

sabeis si es normal?? hago algo mal?? hay otra forma de borrar archivos (ya q necesito q las session sigan llenas)

muchas gracias!!

Última edición por lambdavi; 18/03/2010 a las 04:13
  #8 (permalink)  
Antiguo 18/03/2010, 09:54
Avatar de chen08  
Fecha de Ingreso: marzo-2010
Mensajes: 12
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Borrar archivo en el cliente

AWesker: no se, pero no me funciona, copiando tu código no me entra en el if, ya que _Archivo es igual a solamente el nombre del archivo. extensión....


lambdavi, tiene que haber otra cosa, no deberian borrarse las variables de sesión.
  #9 (permalink)  
Antiguo 18/03/2010, 10:35
Avatar de AWesker  
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 27
Respuesta: Borrar archivo en el cliente

Muy interesante chen08. Intenta cambiando el Input File por un FileUpload (control de ASP). E intenta esta variante:
Código:
             
             try
            {
                 string _Archivo = String.Empty;
                _Archivo = FU_Archivo.PostedFile.FileName; //Aquí debe aparecerte la ruta completa incluyendo nombre y extension
                String _Nombre = FU_Archivo.FileName; //Aquí debe aparecerte solamente el nombre y la extensión
                if(System.IO.File.Exists(_Archivo))
                {
                    System.IO.File.Delete(_Archivo);
                }
            }
            catch (Exception ex)
            {
            }
Aunque no debería pasarte eso. Siempre he utilizado la misma lógica (aunque con el FileUpload).

Nos cuentas qué sucede...

lambdavi
Con una inspección rápida, el código que presentas esta muy bien, más bien creo que el problema ha de estar en el Evento Load(). Si puedes escríbelo para darle una mirada.
  #10 (permalink)  
Antiguo 18/03/2010, 11:26
Avatar de chen08  
Fecha de Ingreso: marzo-2010
Mensajes: 12
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Borrar archivo en el cliente

Lo he cambiado por el FileUpload y tanto FU_Archivo.PostedFile.FileName como FU_Archivo.FileName son idénticos... nombre de archivo y extensión..


y he echo una prueba, he puesto la ruta a mano, y ejecutando en mi maquina como desarrollo genial, pero cuando cuelgo en el servidor la aplicación y la ejecuto desde el cliente no borra el archivo... sigo pensando que intenta borrar el archivo en el servidor..

que te parece?
  #11 (permalink)  
Antiguo 18/03/2010, 13:35
Avatar de AWesker  
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 27
Respuesta: Borrar archivo en el cliente

Podría asegurarte que a mi me funciona al 100%... ¿qué navegador usas? yo lo estoy probando con IE8. Y leí por ahí que no se interpreta PostedFile.FileName como debe. Dejame revisar otras alternativas que se me ocurren. Yo te aviso.
  #12 (permalink)  
Antiguo 18/03/2010, 14:15
Avatar de chen08  
Fecha de Ingreso: marzo-2010
Mensajes: 12
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Borrar archivo en el cliente

Uso ie8, la verdad que no le veo mucha salida.
Muchas gracias por tus molestias.

Me dices si ves algo, gracias.
  #13 (permalink)  
Antiguo 20/03/2010, 14:02
 
Fecha de Ingreso: marzo-2009
Mensajes: 83
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Borrar archivo en el cliente

hola de nuevo!

estoy 99.99% seguro de q el error está en el código q os indique.
para ser más exacto en el momento de borrar el directorio;
Cita:
System.IO.Directory.Delete(Directorio & Nombre, True)
ya q he estado probando a eliminar sólo esa linea del código (la de borrado), y todo funciona bien, me crea el nuevo directorio y siguen llenas las variables session...

alguna otra idea??
muxas gracias por todo!!

Etiquetas: borrar, cliente, eliminar, fichero
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:53.