elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Eliminar archivo con un command desde el FilelistBox
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Eliminar archivo con un command desde el FilelistBox  (Leído 5,604 veces)
Enemy

Desconectado Desconectado

Mensajes: 285


Que vuelva el personal de hace 15 años al foro!


Ver Perfil
Eliminar archivo con un command desde el FilelistBox
« en: 26 Septiembre 2009, 01:23 am »

Bueno, mi problema es el siguiente:

Estoy programando un explorador con un par de opciones, basico. pero no logro que los botones cumplan con su funcion, borrar, abrir, quitar atributos, etc.

Quiero seleccionar un archivo de un filelistbox (ya teniendo el drive y el dir) y dar en el boton ejecutar o borrar, pero no logro enviarle la variable a la funcion "kill" o "Deletefile" del objeto FSO para que cumpla con su trabajo :-\

Citar
Private Sub Form_Load()
Dim Ruta As String
Ruta = File1.Path & "\" & File1.FileName
File1.Pattern = "*.exe;*.bat;*.ini;*.com;*.vbs"
End Sub

------------------------------------------------------

Private Sub CmdBorrar_Click()
Kill Ruta, True
End Sub

O sino asi:

Citar
Private Sub Form_Load()
Dim Fso as Object
Set Fso = CreateObject("Scripting.FileSystemObject")
Ruta = File1.Path & "\" & File1.FileName
File1.Pattern = "*.exe;*.bat;*.ini;*.com;*.vbs"
End Sub

--------------------------------------------------------------

Private Sub CmdBorrar_Click()
fso.deletefile Ruta, True
End Sub

Que esta mal? o que me falta? y si, probe tambien poniendo "Ruta = File1.Path & "\" & File1.FileName" en el "Private Sub File1_click()" pero nada..


Gracias..







SALUD.O.S


« Última modificación: 26 Septiembre 2009, 01:30 am por Bakura182 » En línea

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Eliminar archivo con un command desde el FilelistBox
« Respuesta #1 en: 26 Septiembre 2009, 02:28 am »

Hola, este codigo:

Código
  1. Ruta = File1.Path & "\" & File1.FileName

lo deberias ejecutar en el evento clik del filelistbox, no en el load del formulario, ya que si cambias de archivo no pasa nada, el load se ejecuta al inicio no tiene nada que ver. y la variable Ruta debe estar declarada arriba local en el formulario no en el load.aparte de eso debes hacer un refresh sino nunca ves si borraste o no...este codigo te debe funcionar:

Código
  1. Dim Ruta As String
  2.  
  3. Private Sub Command1_Click()
  4.    If File1.ListIndex = -1 Then Exit Sub
  5.    Kill Ruta
  6.    File1.Refresh
  7. End Sub
  8.  
  9. Private Sub File1_Click()
  10.    Ruta = File1.Path & File1.FileName
  11. End Sub
  12.  
  13. Private Sub Form_Load()
  14.    File1.Pattern = "*.exe;*.bat;*.ini;*.com;*.vbs"
  15. End Sub

saludos.


En línea

Enemy

Desconectado Desconectado

Mensajes: 285


Que vuelva el personal de hace 15 años al foro!


Ver Perfil
Re: Eliminar archivo con un command desde el FilelistBox
« Respuesta #2 en: 26 Septiembre 2009, 03:26 am »

Si men, lo del refresh y un par de cosas mas las tengo claras pero solo posteo en donde se que hay errores no el code completo.

Sabes, me seguia tirando error, me marca en amarillo el "Kill Ruta"

prove agregando la variable en el cmd antes del if y se dio ^^

Código:
Private Sub CmdBorrar_Click()
Ruta = File1.Path & File1.FileName
If File1.ListIndex = -1 Then Exit Sub
Kill Ruta
File1.Refresh
End Sub

Porque desde el "File1_Click" no quiere funcar.

Gracias  ;)
En línea

Enemy

Desconectado Desconectado

Mensajes: 285


Que vuelva el personal de hace 15 años al foro!


Ver Perfil
Re: Eliminar archivo con un command desde el FilelistBox
« Respuesta #3 en: 26 Septiembre 2009, 05:42 am »

Perdon por el doble post pero siguen habiendo un par de errores.

1 por ejemplo cuando le asigno la ruta a la variable queda asi:

Código:
Ruta = File1.path & File1.filename

O sea: C:\Miarhivo.ext

Ese coda para borrar archivos dentro de una unidad sin estar dentro de una carpeta, funciona pero...

si quiero borrar un archivo en otra ubicacion: "F:\mis archivos\blabla\redtube.ext"

Código:
Ruta = File1.path & File1.filename

Esto devuelve: F:\mis archivos\blabla    ---> (sin el signo "\" al final, eso da error, archivo no encontrado)

En total asi: F:\mis archivos\[b]blablaredtube.ext[/b]   (sin el "\")

y si hago esto:

Código:
Ruta = File1.path & "\"  & File1.filename

Ahi si funcionaria: F:\mis archivos\blabla\redtube.ext

Como soluciono este problema de rutas??


2 Estando bien la ruta, no me deja eliminar los archivos siendo que otros si elimina... mejor explico a este despues, ya es tarde aqui.


Gracias de nuevo.
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Eliminar archivo con un command desde el FilelistBox
« Respuesta #4 en: 26 Septiembre 2009, 06:27 am »

setattr()

kill() '// No borra archivo ocultos o similares/derivados como los abiertos por ejemplo, setattr() ejecuta antes los pones en modo normal y despues le pasas el kill()

Espero sea eso lo de que algunos archivos los borra y otros no.!¡

Dulces Lunas.
En línea

The Dark Shadow is my passion.
burbu_1

Desconectado Desconectado

Mensajes: 159


hamen gaoz


Ver Perfil
Re: Eliminar archivo con un command desde el FilelistBox
« Respuesta #5 en: 26 Septiembre 2009, 11:01 am »

Perdon por el doble post pero siguen habiendo un par de errores.

1 por ejemplo cuando le asigno la ruta a la variable queda asi:

Código:
Ruta = File1.path & File1.filename

O sea: C:\Miarhivo.ext

Ese coda para borrar archivos dentro de una unidad sin estar dentro de una carpeta, funciona pero...

si quiero borrar un archivo en otra ubicacion: "F:\mis archivos\blabla\redtube.ext"

Código:
Ruta = File1.path & File1.filename

Esto devuelve: F:\mis archivos\blabla    ---> (sin el signo "\" al final, eso da error, archivo no encontrado)

En total asi: F:\mis archivos\[b]blablaredtube.ext[/b]   (sin el "\")

y si hago esto:

Código:
Ruta = File1.path & "\"  & File1.filename

Ahi si funcionaria: F:\mis archivos\blabla\redtube.ext

Como soluciono este problema de rutas??


2 Estando bien la ruta, no me deja eliminar los archivos siendo que otros si elimina... mejor explico a este despues, ya es tarde aqui.


Gracias de nuevo.



Para el problema 1...

Código:
If Right(File1.Path, 1) <> "\" Then
    ruta = File1.Path & "\" & File1.FileName
Else
    ruta = File1.Path & File1.FileName
End If


Saludos.


En línea

Enemy

Desconectado Desconectado

Mensajes: 285


Que vuelva el personal de hace 15 años al foro!


Ver Perfil
Re: Eliminar archivo con un command desde el FilelistBox
« Respuesta #6 en: 27 Septiembre 2009, 06:37 am »

setattr()

kill() '// No borra archivo ocultos o similares/derivados como los abiertos por ejemplo, setattr() ejecuta antes los pones en modo normal y despues le pasas el kill()

Espero sea eso lo de que algunos archivos los borra y otros no.!¡

Dulces Lunas.

Tengo esa opcion tambien, la volver visibles archivos del sistema-ocultos, pero no me habia fijado en eso.

Gracias BlackZ


Gracias burbu tambien, no se me hubiera ocurrido usar el right >.<


Pero Black, mira. testeo mi programa con arhivos ini, los pongo en "C:\" como "ACA.ini" y con un script le doy atributos "39" perfecto, se oculto como del systema, a la hora de sacarle los atributos con el boton del programa, tambien, cumple con la funcion, pero cuando a ese archivo lo quiero eliminar sale: Error 75 "Error de acceso a ruta o archivo"

No entiendo que esta mal, no hay nada mal, no tiene atributos, la ruta es la correcta y la funcion Kill cumple su funcion, entonces??


Código:
Private Sub CmdBorrar_Click()
If Right(File1.Path, 1) <> "\" Then
    Ruta = File1.Path & "\" & File1.FileName
Else
    Ruta = File1.Path & File1.FileName
End If
If File1.ListIndex = -1 Then Exit Sub
Kill Ruta
File1.Refresh
End Sub
------------------------------------------------
Private Sub CmdAtbs_Click()
If Right(File1.Path, 1) <> "\" Then
    Ruta = File1.Path & "\" & File1.FileName
Else
    Ruta = File1.Path & File1.FileName
End If
If File1.ListIndex = -1 Then Exit Sub
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Var1 = Fso.GetFile(Ruta)
Var1.Attributes = -39
File1.Refresh
End Sub

??


EDITO: Sera porque el archivo queda en solo lectura? estoy viendo eso.
« Última modificación: 27 Septiembre 2009, 07:25 am por Bakura182 » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Eliminar archivo con un command desde el FilelistBox
« Respuesta #7 en: 27 Septiembre 2009, 08:57 am »

intenta poner esto

Código
  1. If Right(File1.Path, 1) <> "\" Then
  2.    ruta = File1.Path & "\" & File1.FileName
  3. Else
  4.    ruta = File1.Path & File1.FileName
  5. End If
  6.  
  7. ' // En una linea seria mejor!¡.
  8.  
  9. ruta = File1.Path & iif(Right(File1.Path, 1) <> "\", "\" & File1.FileName, File1.FileName)
  10.  

Código
  1. ' //
  2. ' //No cuento con el VB a la mano, cualquier error lo podràs corregir!¡.
  3. ' //
  4. if dir(ruta,vbarchive)<>"" then
  5.   setattr ruta,vbnormal
  6.   kill ruta
  7. else ' Solo para debug
  8.   debug.print "Ruta de Archivo no encontrado",ruta
  9. end if
  10.  
  11.  

y si ya estas harto con el kill y setearle atributos con setattr usa la API DeleteFile

Código
  1.  
  2. Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
  3.  
  4. Proceso_X()
  5. {
  6.  dim rs as long
  7.  rs=deletefile(ruta)
  8. }
  9.  
  10.  

Dulces Lunas!¡.
« Última modificación: 27 Septiembre 2009, 09:07 am por BlackZeroX » En línea

The Dark Shadow is my passion.
43H4FH44H45H4CH49H56H45H
Wiki

Desconectado Desconectado

Mensajes: 502



Ver Perfil
Re: Eliminar archivo con un command desde el FilelistBox
« Respuesta #8 en: 28 Septiembre 2009, 00:12 am »

Algo asi?
Código
  1. Private Sub Command1_Click()
  2. Dim i As Integer
  3. Dim ruta As String
  4. For i = 0 To File1.ListCount - 1
  5.    If File1.Selected(i) = True Then
  6.       If MsgBox("En realidad deseas borrar este archivo?", vbQuestion + vbYesNo, "Borrar Archivo") = vbYes Then
  7.       ruta = File1.Path & "\" & File1.FileName
  8.       SetAttr ruta, vbNormal
  9.       Kill ruta
  10.       File1.Selected(i) = False
  11.       File1.Refresh
  12.       Exit For
  13.       End If
  14.    End If
  15. Next i
  16. End Sub
En línea


-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W
Enemy

Desconectado Desconectado

Mensajes: 285


Que vuelva el personal de hace 15 años al foro!


Ver Perfil
Re: Eliminar archivo con un command desde el FilelistBox
« Respuesta #9 en: 28 Septiembre 2009, 01:30 am »

Ya quedo..

Código:
Private Sub CmdBorrar_Click()
Dim i As Integer
Dim Ruta As String
For i = 0 To File1.ListCount - 1
    If File1.Selected(i) = True Then
       If MsgBox("Está seguro de eliminar " + File1.FileName + "?", vbQuestion + vbYesNo, "Eliminar Archivo") = vbYes Then
            If Right(File1.Path, 1) <> "\" Then
                Ruta = File1.Path & "\" & File1.FileName
      Else
          Ruta = File1.Path & File1.FileName
           SetAttr Ruta, vbNormal
             Kill Ruta
              File1.Selected(i) = False
             File1.Refresh
           Exit For
        End If
    End If
End If
Next i
End Sub


El setattr vbnormal evita el error de eliminar, muchas gracias por la ayuda.





SALUD.O.S
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[AYUDA] Eliminar archivos determinado tamaño desde filelistbox.
Programación Visual Basic
newbY 4 3,712 Último mensaje 11 Enero 2011, 14:43 pm
por newbY
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines