|
Mostrar Mensajes
|
Páginas: 1 2 [3]
|
22
|
Programación / .NET (C#, VB.NET, ASP) / Re: Problemas a listar Archivos
|
en: 4 Febrero 2015, 16:22 pm
|
Ok guardado todo lo que me dices, sobre lo de finally. sobre lo de crear esa carpeta, sin colocarlo en un bloque try/catch, abre y se cierra. Bajo el bloque Try/Catch, me manda este error: Excepción:Se produjo: "No se puede encontrar una parte de la ruta de acceso 'G:\'." (System.IO.DirectoryNotFoundException) Se produjo una System.IO.DirectoryNotFoundException: "No se puede encontrar una parte de la ruta de acceso 'G:\'." Mi USB esta formateado en Fat32, en un disco duro formateado en NTFS no muestra error ni tampoco se cierra.
|
|
|
23
|
Programación / .NET (C#, VB.NET, ASP) / Re: Problemas a listar Archivos
|
en: 4 Febrero 2015, 06:13 am
|
gracias por todo, aun me falta mucho por aprender. Sobre lo de intentar reproducir el problema con: Directory.CreateDirectory(sourceFolder)
No crea el directorio con ese caracter y tambien lo de si existe esa ruta tampoco funciona(supongo que debe ser por ese caracter). Lo que si funciona es: Directory.Move(sourceFolder, DestinyFolder)
Ya estaba pensando en usar el "On Error Resume Next", pero decidi hacerlo asi: Private Sub TestForm_Shown() Handles MyBase.Shown Dim sourceFolder As String = Path.Combine("G:\", Convert.ToChar(160)) Dim DestinyFolder As String = Path.Combine("G:\", "Recuperado") Try Directory.Move(sourceFolder, DestinyFolder) Catch ex As Exception Finally Dim folderPath As String = "G:\" Dim fileExts As IEnumerable(Of String) = {"docx", "pptx"} Dim fInfoCol As IEnumerable(Of FileInfo) Dim lvItems As IEnumerable(Of ListViewItem) Try fInfoCol = GetFiles(folderPath, fileExts, SearchOption.AllDirectories) Catch ex As Exception Throw End Try lvItems = From fInfo As FileInfo In fInfoCol Select New ListViewItem(fInfo.FullName) With Me.ListView1 .BeginUpdate() .Items.AddRange(lvItems.ToArray) .EndUpdate() End With End Try End Sub ''' <summary> ''' Retrieves the files inside a directory, ''' containing the specified file extensions. ''' </summary> ''' <param name="folderPath">The directory path where to search files.</param> ''' <param name="fileExts">The file extensions to match.</param> ''' <param name="searchOption">The searching mode.</param> ''' <returns>IEnumerable(Of FileInfo).</returns> Public Shared Function GetFiles(ByVal folderPath As String, ByVal fileExts As IEnumerable(Of String), ByVal searchOption As SearchOption) As IEnumerable(Of FileInfo) ' Set all the file extensions to lower-case and ' Remove empty file extensions and ' Remove "*" and "." chars from beginning of the file extension. fileExts = From fileExt As String In fileExts Where Not String.IsNullOrEmpty(fileExt) Select fileExt.TrimStart({"*"c, "."c, " "c}).TrimEnd.ToLower Return From filePath As String In Directory.GetFiles(folderPath, "*", searchOption) Where If(Not String.IsNullOrEmpty(Path.GetExtension(filePath)), fileExts.Contains(Path.GetExtension(filePath).TrimStart("."c).ToLower), Nothing) Select New FileInfo(filePath) End Function
Asi me funciona, si sigo estoy equivocado corrigeme Saludos
|
|
|
24
|
Programación / .NET (C#, VB.NET, ASP) / Re: Problemas a listar Archivos
|
en: 3 Febrero 2015, 22:25 pm
|
una tonteria mia, lo de no poner el valor unicode de ese caracter: "NO-BREAK SPACE" U+00A0-> (&HA0), pero igual no daba. Lo queria hacer desde vb.net de forma automatica sin estar yendo a las propiedades del explorer,carpetas ocultas,ver la carpeta, etc, ya que cuando estaba en otras maquinas no se podia quitar los atributos de oculto y por tanto no se podia ver la carpeta en cuestion. Encontre una forma, no se si la mejor, pero funciono: Shell("cmd.exe /c move /-y " & """" & "G:\" & ChrW(&HA0) & """" & " G:\Recuperado")
Ahora solo me falta hacer es que si existe esa carpeta lo cambie de nombre, caso contrario omita ese paso xD. Gracias por la ayuda, saludos.
|
|
|
25
|
Programación / .NET (C#, VB.NET, ASP) / Re: Problemas a listar Archivos
|
en: 3 Febrero 2015, 20:20 pm
|
Hola, gracias por responder y gracias por la sugerencia de Directory.GetFiles eh intentado probar tu codigo, pero me marca un error: 'ToArray' no es un miembro de 'System.Collections.generic.IEnumerable(Of String)' en esta linea: filePaths = From filePath As String In My.Computer.FileSystem.GetFiles(folderPath, SearchOption.SearchAllSubDirectories, fileExts.ToArray)
Solucione eso, estaba con .netframework 2 actualice a .netramework 4.5.1 Sobre lo de Renombrar el nombre de la carpeta, lo eh intentado, asì: My.Computer.FileSystem.RenameDirectory("G:\" & " ", "Carpeta2")
Pero no reconoce el nombre de la carpeta y lo toma como si solo estuviese escrito "G:\" manualmente se puede renombrar, pero desde vb.net nada, no existe alguna otra forma??
|
|
|
26
|
Programación / .NET (C#, VB.NET, ASP) / Problemas a listar Archivos
|
en: 3 Febrero 2015, 18:42 pm
|
Hola a todos soy nuevo en este foro. Comence hace 3 semanas a aprender VB.NET y despues de leer y leer queria hacer mi primer programa es muy sencillo pero lo necesitaba, el programa lo que hace es buscar archivos con extension ".docx" y ".pptx" de mi memoria usb para luego copiar en otra carpeta, hasta hace un par de dias funcionaba, buscaba archivos y los mostraba en un listview1, pero ayer me infecte con un virus mi usb y oculto todas los archivos y carpetas y mi antivirus borro el virus, pero aun estaban ocultos los archivos y crei que igual deberia listar los archivos sin importar los atributos de oculto, pero cuando le doy a buscar me muestra el siguiente error: No se controló StackOverflowException
Excepción no controlada del tipo 'System.StackOverflowException' en mscorlib.dll
Despues busque la forma de volver a mostrar los archivos desde el CMD de windows encontre que el virus movio todos mis archivos en una carpeta sin nombre(me di cuenta despues que el nombre tenia un espacio si no me equivoco es un caracter que aparece cuando se presiona alt + 0160). El problema ocurre con esa carpeta con nombre vacio ya que si le cambio de nombre de la carpeta la aplicacion funciona. Aqui les dejo el codigo del boton buscar archivos: 'BOTON BUSCAR ARCHIVOS Try Dim RutaArchivos As String = "G:\" For Each archivo As String In My.Computer.FileSystem.GetFiles(RutaArchivos, FileIO.SearchOption.SearchAllSubDirectories, "*.docx") ListView1.Items.Add(archivo) Next For Each archivo2 As String In My.Computer.FileSystem.GetFiles(RutaArchivos, FileIO.SearchOption.SearchAllSubDirectories, "*.pptx") ListView1.Items.Add(archivo2) Next Catch ex As Exception MessageBox.Show(ex.Message) End Try
Si alguien podria ayudarme a solucionarlo, se lo agradeceria mucho.
|
|
|
|
|
|
|