Título: ayuda en VB.NET
Publicado por: **Aincrad** en 19 Septiembre 2017, 22:33 pm
hola a todos. hoy me he encontrado con un problema en vb.net que no puedo solucionar. tengo este codigo: Dim dirPath As String = Environment.ExpandEnvironmentVariables("%AppData%\Microsoft\Windows\Start Menu\Programs\Startup") Try For Each Archivo As String In My.Computer.FileSystem.GetFiles( _ dirPath, _ FileIO.SearchOption.SearchAllSubDirectories, _ "*.vbs", _ "*.cmd", _ "*.js", _ "*.wsf", _ "*.ink", _ "*.bat") ListBox1.Items.Add(Archivo) Form7.Show() Next ' errores Catch oe As Exception MsgBox(oe.Message, MsgBoxStyle.Critical) End Try
el código se encarga de buscar en la carpeta inicio de windows todos los archivos con los formatos que aparecen. Bueno lo que quiero es que si al buscar en la carpeta, no encuentra ningún archivo con ese formato me muestre un formulario. eso es todo . en pocas palabras necesito saber como ubicar este codigo: If cualquiercode Then MsgBox("se encontraron archivos con formato .vbs-.bat-.ink-.cmd-.js") Else form9.show() End If
no se si me comprenden. XD :silbar:
Título: Re: ayuda en VB.NET
Publicado por: Eleкtro en 19 Septiembre 2017, 23:03 pm
En el otro post te expliqué varias cosas pero no veo que hayas intentado seguir los conejos... Para hacer lo que quieres simplemente guarda en una variable la colección devuelta por la función My.Computer.FileSystem.GetFiles() y evalua el número de elementos de ésta. Ejemplo: Imports Microsoft.VisualBasic.FileIO Imports System.Collections.ObjectModel Public Class Form1 Private Sub Test() Dim dirPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Startup) Dim fileExts As String() = {"*.vbs", "*.cmd", "*.js", "*.wsf", "*.ink", "*.bat"} Dim filePaths As ReadOnlyCollection(Of String) = My.Computer.FileSystem.GetFiles(dirPath, SearchOption.SearchAllSubDirectories, fileExts) If (filePaths.Count <> 0) Then With Me.ListBox1 .BeginUpdate() .Items.AddRange(filePaths.ToArray()) .EndUpdate() End With MessageBox.Show(Me, String.Format("Se encontraron archivos con extensión: {{{0}}}", String.Join(", ", fileExts)), Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Information) Else My.Forms.Form9.Show() End If End Sub End Class
PD: LAS PREGUNTAS SOBRE VB.NET VAN EN EL SUBFORO DE PROGRAMACIÓN .NET, NO DE VB6. Ya te advirtió un Coadmin, respeta las normas por favor.Saludos
Título: Re: ayuda en VB.NET
Publicado por: **Aincrad** en 19 Septiembre 2017, 23:31 pm
gracias, pero me marca errores :( te señalo los errores en el code: Dim dirPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Startup) Dim fileExts As String() = {"*.vbs", "*.cmd", "*.js", "*.wsf", "*.ink", "*.bat"} Dim filePaths As ReadOnlyCollection(Of String) = 'me marca el signo = como error dice Expression expected My.Computer.FileSystem.GetFiles(dirPath, SearchOption.SearchAllSubDirectories, fileExts) 'ME SUBRAYA SearchOption y me dice 'SearchOption' is ambiguous, imported from the namespaces or types 'System.IO, Microsoft.VisualBasic.FileIO'. If (filePaths.Count <> 0) Then 'ME SUBRAYA filePaths y como solucion me muetra FileOption dice Name 'filePaths' is not declared. With Me.ListBox1 .BeginUpdate() .Items.AddRange(filePaths.ToArray()) .EndUpdate() End With MessageBox.Show(Me, String.Format("Se encontraron archivos con extensión: {{{0}}}", String.Join(", ", fileExts)), Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Information) 'ME SUBRAYA , MessageBoxButtons.OK y dice Expression is not a method. Else My.Forms.Form9.Show() End If
si sirve de algo yo uso visual studio 2008. :huh:
Título: Re: ayuda en VB.NET
Publicado por: Eleкtro en 19 Septiembre 2017, 23:59 pm
Dim filePaths As ReadOnlyCollection(Of String) = 'me marca el signo = como error dice Expression expected My.Computer.FileSystem.GetFiles(dirPath, SearchOption.SearchAllSubDirectories, fileExts)
MessageBox.Show(Me, String.Format("Se encontraron archivos con extensión: {{{0}}}", String.Join(", ", fileExts)), Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Information) 'ME SUBRAYA , MessageBoxButtons.OK y dice Expression is not a method.
Estás usando una versión antigua de Visual Studio / VB.NET. Añade un linebreak: " _" o junta las lineas. Sugerencia adicional: actualiza tu entorno a VS2017 ( o en su defecto VS2013, como mínimo ) para programar con mucha mayor comodidad.
My.Computer.FileSystem.GetFiles(dirPath, SearchOption.SearchAllSubDirectories, fileExts) 'ME SUBRAYA SearchOption y me dice 'SearchOption' is ambiguous, imported from the namespaces or types 'System.IO, Microsoft.VisualBasic.FileIO'.
Es normal, el compilador encuentra una ambiguedad (dos o más coincidencias de un miembro con el mismo nombre en diferentes namespaces) entre la enumeración Microsoft.VisualBasic.FileIO.SearchOption y System.IO.SearchOption. Para resolverlo puedes especificar la importación del namespace adecuado en la cabecera del archivo ...tal y como yo hice en el código que te mostré: Imports Microsoft.VisualBasic.FileIO
Saludos.
Título: Re: ayuda en VB.NET
Publicado por: **Aincrad** en 20 Septiembre 2017, 00:23 am
Gracias Elektro tenias razon en Añade un linebreak: " _" o junta las lineas solucione los errores.
|