Título: VB Copiar archivos de una carpeta (listbox1 y 2) cambiando nombre desde un textb Publicado por: mortygor en 3 Julio 2018, 18:19 pm Perdon, es para VISUAL BASIC.
Buenas, tengo un 2 listbox que al iniciar el form cargan una ruta especifica y me listan los archivos. También un textbox y un botón. Cuando selecciono en el listbox1 un Item, pongo en el textbox un nuevo nombre y cuando le doy al button, me gustaria que pasase el archivo con el nombre cambiado. Esto es lo que pongo en el button para pasar el item, pero solo pasa el item. ListBox2.Items.Add (ListBox1.Items.Item (ListBox1.SelectedIndex)) He probado con. My.Computer.FileSystem.copyFile("C:\TestDir1\test.txt", "C:\TestDir2\test2.txt") Pero no funciona porque quiero ponerle el nombre desde un textbox. Estoy en cruce ahora mismo, me podeis guiar un poco por donde tengo que seguir, porque no lo veo. Gracias. Título: Re: VB Copiar archivos de una carpeta (listbox1 y 2) cambiando nombre desde un textb Publicado por: Eleкtro en 3 Julio 2018, 21:26 pm Estoy en cruce ahora mismo, me podeis guiar un poco por donde tengo que seguir, porque no lo veo. Te lo voy a poner bien facilito, código fuente completo y comentado en Español... Código
En la interfaz de usuario se debe añadir un TextBox, un Button y dos ListBox. Saludos. Título: Re: VB Copiar archivos de una carpeta (listbox1 y 2) cambiando nombre desde un textb Publicado por: mortygor en 3 Julio 2018, 22:24 pm Hola Elektro, lo primero muchas gracias por contestar, voy a probarlo y te cuento.
Muchas gracias y un saludo. Título: Re: VB Copiar archivos de una carpeta (listbox1 y 2) cambiando nombre desde un textb Publicado por: mortygor en 4 Julio 2018, 15:57 pm Hola, alguna cosa no encaja, me salen bastantes fallos.
Esto es lo que tengo en este form. Imports System.Runtime.InteropServices Imports System Imports System.IO Public Class Form2 '-------------------NECESARIO PARA VIGILAR LOS ARCHIVOSDE UNA CARPETA Public WithEvents fswc As FileSystemWatcher '------------------- MOVER EL FORMULARIO <DllImport("user32.DLL", EntryPoint:="ReleaseCapture")> Private Shared Sub ReleaseCapture() End Sub <DllImport("user32.DLL", EntryPoint:="SendMessage")> Private Shared Sub SendMessage(ByVal hWnd As System.IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Me.Close() 'orden para cerrar' End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Me.WindowState = FormWindowState.Minimized 'orden para minimizar' End Sub Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim directory2 = "C:\Users\mortigor\Desktop\iconos2" Dim files2() As System.IO.FileInfo Dim dirinfo2 As New System.IO.DirectoryInfo(directory2) files2 = dirinfo2.GetFiles("*.mp4", IO.SearchOption.AllDirectories) ' DECIRLE QUE EXTENSION DE ARCHIVO For Each file In files2 ListBox2.Items.Add(file) Next ''''''''''''''''' NECESARIO PARA VIGILAR LOS ARCHIVOSDE UNA CARPETA Me.CheckForIllegalCrossThreadCalls = False fswc = New FileSystemWatcher("C:\Users\Alfredo\Desktop\iconos") fswc.IncludeSubdirectories = False fswc.EnableRaisingEvents = True '--------------------------------------- 'muestra contenido carpeta' Dim directory = "C:\Users\mortigor\Desktop\iconos" Dim files() As System.IO.FileInfo Dim dirinfo As New System.IO.DirectoryInfo(directory) files = dirinfo.GetFiles("*.mp4", IO.SearchOption.AllDirectories) ' DECIRLE QUE EXTENSION DE ARCHIVO For Each file In files ListBox1.Items.Add(file) Next End Sub Private Sub Panel1_MouseMove(sender As Object, e As MouseEventArgs) Handles Panel1.MouseMove ReleaseCapture() SendMessage(Me.Handle, &H112&, &HF012&, 0) End Sub Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click End Sub Private Sub fswc_Changed(sender As Object, e As FileSystemEventArgs) Handles fswc.Changed ListBox1.Items.Clear() Dim directory = "C:\Users\mortigor\Desktop\iconos" Dim files() As System.IO.FileInfo Dim dirinfo As New System.IO.DirectoryInfo(directory) files = dirinfo.GetFiles("*.mp4", IO.SearchOption.AllDirectories) ' DECIRLE QUE EXTENSION DE ARCHIVO For Each file In files ListBox1.Items.Add(file) Next End Sub Private Sub fswc_Created(sender As Object, e As FileSystemEventArgs) Handles fswc.Created ListBox1.Items.Clear() Dim directory = "C:\Users\mortigor\Desktop\iconos" Dim files() As System.IO.FileInfo Dim dirinfo As New System.IO.DirectoryInfo(directory) files = dirinfo.GetFiles("*.mp4", IO.SearchOption.AllDirectories) ' DECIRLE QUE EXTENSION DE ARCHIVO For Each file In files ListBox1.Items.Add(file) Next End Sub Private Sub fswc_Deleted(sender As Object, e As FileSystemEventArgs) Handles fswc.Deleted ListBox1.Items.Clear() Dim directory = "C:\Users\mortigor\Desktop\iconos" Dim files() As System.IO.FileInfo Dim dirinfo As New System.IO.DirectoryInfo(directory) files = dirinfo.GetFiles("*.mp4", IO.SearchOption.AllDirectories) ' DECIRLE QUE EXTENSION DE ARCHIVO For Each file In files ListBox1.Items.Add(file) Next End Sub Private Sub fswc_Disposed(sender As Object, e As EventArgs) Handles fswc.Disposed ListBox1.Items.Clear() End Sub Private Sub fswc_Error(sender As Object, e As ErrorEventArgs) Handles fswc.[Error] ListBox1.Items.Clear() End Sub Private Sub fswc_Renamed(sender As Object, e As RenamedEventArgs) Handles fswc.Renamed ListBox1.Items.Clear() Dim directory = "C:\Users\mortigor\Desktop\iconos" Dim files() As System.IO.FileInfo Dim dirinfo As New System.IO.DirectoryInfo(directory) files = dirinfo.GetFiles("*.mp4", IO.SearchOption.AllDirectories) ' DECIRLE QUE EXTENSION DE ARCHIVO For Each file In files ListBox1.Items.Add(file) Next End Sub Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged End Sub Private Sub Label2_Click(sender As Object, e As EventArgs) Handles Label2.Click End Sub Private Sub Label3_Click(sender As Object, e As EventArgs) Handles Label3.Click End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click End Sub Private Sub TextBox4_TextChanged(sender As Object, e As EventArgs) Handles TextBox4.TextChanged End Sub Private Sub ListBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox2.SelectedIndexChanged End Sub Private Sub BackgroundWorker1_DoWork(sender As Object, e As ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork End Sub Esto es lo que tengo por ahora, me lee el archivo el listbox, tengo un watcher para que me lo actualice cada vez que hay algún cambio. Tengo 2 listbox, button, listbox. No se como encajarlo.. Título: Re: VB Copiar archivos de una carpeta (listbox1 y 2) cambiando nombre desde un textb Publicado por: Eleкtro en 4 Julio 2018, 16:08 pm Debes usar el botón específico que sirve para insertar código con formato...
me salen bastantes fallos. ¿Fallos de compilación, o fallos en tiempo de ejecución?. De todas formas en lugar de poner todo el código, mejor si muestras el código relevante, es decir, el bloque de método que contiene la instrucción donde te marca el error que sea, y menciona el tipo de excepción y el mensaje de error, no somos adivinos... Saludos Título: Re: VB Copiar archivos de una carpeta (listbox1 y 2) cambiando nombre desde un textb Publicado por: mortygor en 4 Julio 2018, 16:35 pm Perdona, tienes razon, he ido demasiado rapido y al final no se ni lo que pongo ni el como.... La verdad es que estoy "rallado" y me da la impresión de que en vez de hacer estoy deshaciendo.... Pero bueno.
Te lo pongo en varios que no me coje mas de 100 lineas creo. Código
Título: Re: VB Copiar archivos de una carpeta (listbox1 y 2) cambiando nombre desde un textb Publicado por: mortygor en 4 Julio 2018, 16:51 pm Código
Título: Re: VB Copiar archivos de una carpeta (listbox1 y 2) cambiando nombre desde un textb Publicado por: Eleкtro en 4 Julio 2018, 16:54 pm Citar Te lo pongo en varios que no me coje mas de 100 lineas creo. ¿Qué habiamos dicho de mostrar solamente el código relevante donde te marca el error?, si me muestras todo el código completo pero no me indicas donde te marca el error no solucionamos nada xD, de todas formas si piensas compartir muchas lineas de código no hagas un desastre publicando doble y triple posts o cosas así (por si acaso, que me lo veo venir), puedes usar este servicio de aquí abajo y colocar el enlace que hayas generado...
EDITO: has comentado en muchas lienas "AQUI MI CODIGO COMIENZA A DAR FALLOS.", ¿pero podrías mencionar el tipo de excepción y el mensaje de error?, ¿o sino a que tipo de fallo te refieres?. Debo preguntártelo por si acaso, ¿sabes como obtener la info que te estoy pidiendo?, es decir, ¿sabes obtener datos de depuración de forma básica?. Saludos Título: Re: VB Copiar archivos de una carpeta (listbox1 y 2) cambiando nombre desde un textb Publicado por: Eleкtro en 4 Julio 2018, 17:58 pm Primero de todo, te faltaba añadir estos imports:
Código
Segundo, todo este bloque: Código
...todos los errores que tengas en esas lineas se deben a que el bloque del método está abierto, vaya, le faltaría un: Código
La instrucción: Código
Debería ser así: Código
De todas formas no es nada recomendable que hagas eso, si necesitas realizar alguna operación desde un thread distinto al thread de la UI y necesitas que ese thread interactue con los controles de la UI entonces te conviene usar la clase BackgroundWorker. Todo esto de aquí abajo es un desorden de métodos/controladores de eventos declarados fuera de la clase, obvio que te de error... Código
Saludos Título: Re: VB Copiar archivos de una carpeta (listbox1 y 2) cambiando nombre desde un textb Publicado por: mortygor en 7 Julio 2018, 21:07 pm Hola!
estoy viendo lo que me comentaste, esta parte no la entiendo muy bien. Private Sub NOMBRE_DEL_METODO() Nombre del método? podría poner cualquier nombre? Muchas gracias por la ayuda, voy a ver si me aclaro. Título: Re: VB Copiar archivos de una carpeta (listbox1 y 2) cambiando nombre desde un textb Publicado por: mortygor en 7 Julio 2018, 21:32 pm He cambiado estas opciones.
Código
Aqui pongo el filtro Código
Ahora ya filtra y copia, esta bien asi? El watcher creo que no funciona, estoy moviendolo a ver si doy con la tecla, solo me falta eso. Elimino el watcher, la verdad es que no me hace falta. He quitado todo lo que me dijiste y ha quedado mas limpio. Gracias. [MOD] para añadir comentarios usar el botón "modificar". No está permitido el doble post. Perdona no lo sabia. Al final el watcher si que lo usare, voy a ver. Gracias y perdona |