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


 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Listar archivos de 2 ficheros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Listar archivos de 2 ficheros  (Leído 641 veces)
PETTETE

Desconectado Desconectado

Mensajes: 127


Ver Perfil
Listar archivos de 2 ficheros
« en: 28 Julio 2017, 11:47 »

Hola buenas,

como bien dice el titulo no se como hacer una lista de los archivos de 2 ficheros.

He abierto las dos carpetas con folderbrowserDialog y al pasar el nombre de los archivos a un excel, me escribe la ruta entera de los archivo...

Como podría hacer que solo escribiera el nombre del archivo?

Código
  1. Sub leer_pdf_y_crear_excel(path, ficheroscarpeta, path2, ficheroscarpeta2, openfolderdialog, openfolderdialog2)
  2.        ' Dim fichero
  3.        Dim xlapp
  4.        Dim xllibro
  5.        Dim xlhoja
  6.        Dim i As Integer = 1
  7.        'Dim fichero
  8.        Dim archivo As String = "*.pdf"
  9.        Dim listbox1 As ListBox
  10.        xlapp = CreateObject("Excel.Application")
  11.        xllibro = xlapp.workbooks.add
  12.        xlhoja = xllibro.worksheets("Hoja1")
  13.        xlapp.visible = True
  14.  
  15.        ficheroscarpeta = System.IO.Directory.GetFiles(path)
  16.        ficheroscarpeta2 = System.IO.Directory.GetFiles(path2)
  17.  
  18.        For Each fichero As String In ficheroscarpeta
  19.            listbox1. = fichero
  20.            xlhoja.cells(i, 1) = fichero
  21.            i += 1
  22.        Next
  23.        For Each fichero As String In ficheroscarpeta2
  24.            xlhoja.cells(i, 1) = fichero
  25.            i += 1
  26.        Next
  27.  
  28.  
  29.  
  30.    End Sub
  31.  
  32.    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
  33.        Dim OpenFolderDialog As New FolderBrowserDialog
  34.        Dim path As String
  35.        Dim ficheroscarpeta() As String
  36.  
  37.        Dim OpenFolderDialog2 As New FolderBrowserDialog
  38.        Dim path2 As String
  39.        Dim ficheroscarpeta2() As String
  40.  
  41.        OpenFolderDialog.SelectedPath = "C:\Users\pepe\Desktop"
  42.        OpenFolderDialog2.SelectedPath = "C:\Users\pepe\Desktop"
  43.  
  44.  
  45.        If OpenFolderDialog.ShowDialog() = DialogResult.OK Then
  46.            path = OpenFolderDialog.SelectedPath
  47.  
  48.        End If
  49.  
  50.        If OpenFolderDialog2.ShowDialog() = DialogResult.OK Then
  51.            path2 = OpenFolderDialog2.SelectedPath
  52.            leer_pdf_y_crear_excel(path, ficheroscarpeta, path2, ficheroscarpeta2, OpenFolderDialog, OpenFolderDialog2)
  53.        End If
  54.  
  55.    End Sub
  56.  
  57.  
  58. End Class
  59.  


« Última modificación: 28 Julio 2017, 12:25 por Eleкtro » En línea

UN SALUDO DE VUESTRO AMIGO Y VECINO,
PETETE;)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: Listar archivos de 2 ficheros
« Respuesta #1 en: 28 Julio 2017, 12:22 »

Hola.

Como norma general, debes asegurarte de liberar los recursos de las instancias de clases que implementen la interfáz IDisposable:
Código
  1. Dim OpenFolderDialog As New FolderBrowserDialog
  2. Dim OpenFolderDialog2 As New FolderBrowserDialog
No te cuesta nada hacer una llamada a FolderBrowserDialog.Dispose() cuando ya no necesites usar el objeto.

Y estas variables que declaras para instanciar objetos COM de Office:
Citar
Código
  1. Dim xlapp
  2. Dim xllibro
  3. Dim xlhoja
...Debes liberarlos mediante los miembros de la clase System.Runtime.InteropServices.Marshal ( Marshal.FinalReleaseComObject() ) para liberar los recursos no administrados.

Además de eso, las variables en VB.NET deben declararse proporcionando un tipo explícito (en C# no es necesario, todas las variables tienen asignación implícita de tipos ). Estás ignorando por completo la sentencia Option Strict produciendo así un código ininteligible, y en fin, eso que haces es un muy mal hábito de programación.
Deberías escribir arriba en la cabecera de tu clase: Option Strict On e ir arreglando los fallos que te irán saliendo en ese código.

En general todo el código que has mostrado está estructurado de forma ineficiente (por ejemplo la nomenclatura del método "leer_pdf_y_crear_excel", y que además éste cumpla dos funciones distintas en una sola), pero lo más grave es que no te responsabilizas en absoluto de los recursos (consumo de memoria RAM de tu aplicación). Debes leer más sobre ello y pulir la administración de recursos sobre todo.

Esos son algunos de mis consejos varios.



Respondiendo a tu pregunta principal:

Código
  1.        ficheroscarpeta = System.IO.Directory.GetFiles(path)
  2.        ficheroscarpeta2 = System.IO.Directory.GetFiles(path2)
  3.  
  4.        For Each fichero As String In ficheroscarpeta
  5.            listbox1. = fichero
  6.            xlhoja.cells(i, 1) = fichero
  7.            i += 1
  8.        Next
  9.  
  10.        For Each fichero As String In ficheroscarpeta2
  11.            xlhoja.cells(i, 1) = fichero
  12.            i += 1
  13.        Next

Solución:

...O en su defecto:

Ejemplo:
Código
  1. Dim files As IEnumerable(Of FileInfo) = New DirectoryInfo("C:\Directory\").EnumerateFiles("*", SearchOption.TopDirectoryOnly)
  2.  
  3. For Each fi As FileInfo In files
  4.    Debug.WriteLine(fi.Name)
  5. Next fi

Saludos


« Última modificación: 28 Julio 2017, 12:41 por Eleкtro » En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Listar ficheros de un servidor
Java
keldorn 2 1,944 Último mensaje 18 Noviembre 2008, 18:32
por Sk9ITk5Z
Listar archivos
GNU/Linux
huerto123 4 1,625 Último mensaje 1 Febrero 2014, 20:53
por huerto123
listar archivos
ASM
.rn3w. 4 1,577 Último mensaje 2 Junio 2014, 23:19
por Eternal Idol
Listar ficheros
.NET (C#, VB.NET, ASP)
Tomas1982 5 1,806 Último mensaje 29 Septiembre 2016, 17:21
por Tomas1982
MOVIDO: Listar ficheros
Programación Visual Basic
Eleкtro 0 1,011 Último mensaje 23 Septiembre 2016, 16:53
por Eleкtro
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines