none
System.NotSupportedException: 'No se admite el formato proporcionado de la ruta de acceso.' RRS feed

  • Pregunta

  • Hola, me sale el error del título.

    Código:

    Private Sub Installed_Shown(sender As Object, e As EventArgs) Handles Me.Shown
            Dim checkpath As String = Environment.GetEnvironmentVariable("USERPROFILE") & "\"
            Dim folders As ObjectModel.ReadOnlyCollection(Of String) = My.Computer.FileSystem.GetDirectories(checkpath)
            Dim allsizes As Integer = 0
            Dim currentfolder As Integer = 0
            For Each folder As Object In folders
                If My.Computer.FileSystem.FileExists(checkpath & ListBox1.Items(currentfolder) & "\boot.bin") = True Then
                    Dim Size As Long = 0
                    Dim total As Double
                    Dim f As FileInfo
                    Dim di As DirectoryInfo = New DirectoryInfo(checkpath & folder)
                    di.GetDirectories()
                    Dim diarr As DirectoryInfo() = di.GetDirectories()
                    Dim fiArr As FileInfo() = di.GetFiles()
    
                    For Each di In diarr
    
                        For Each f In fiArr
                            Size = Size + f.Length
                        Next f
    
                        diarr = di.GetDirectories()
                        fiArr = di.GetFiles()
                    Next di
                    total = Math.Round((Size / 1048576), 0)
                    allsizes = allsizes + total
                End If
            Next
    
            Label2.Text = "Total: " & allsizes & "MB"
        End Sub

    miércoles, 23 de agosto de 2017 17:31

Respuestas

  • Me parece que agregas dos "\\" al formato, fijate que utilizasEnvironment.GetEnviromentVariable(User...) & "\" para  luego agregarle  ListBox1.Items(currentfolder) & ("\boot.Bin") . Sugeriría colocar en un string y mediante msgBox verificar el resultado antes de buscar

    Saludos

    miércoles, 23 de agosto de 2017 17:43

Todas las respuestas

  • y tambien con este

    Private Sub Installed_Shown(sender As Object, e As EventArgs) Handles Me.Shown
            Dim checkpath As String = Environment.GetEnvironmentVariable("USERPROFILE") & "\"
            Dim folders As ObjectModel.ReadOnlyCollection(Of String) = My.Computer.FileSystem.GetDirectories(checkpath)
            Dim allsizes As Integer = 0
            Dim currentfolder As Integer = 0
            For Each folder As Object In folders
                If My.Computer.FileSystem.FileExists(checkpath & ListBox1.Items(currentfolder) & "\boot.bin") = True Then
                    Dim Size As Long = 0
                    Dim total As Double
                    Dim f As FileInfo
                    Dim di As DirectoryInfo = New DirectoryInfo(checkpath & folder)
                    di.GetDirectories()
                    Dim diarr As DirectoryInfo() = di.GetDirectories()
                    Dim fiArr As FileInfo() = di.GetFiles()
    
                    For Each di In diarr
    
                        For Each f In fiArr
                            Size = Size + f.Length
                        Next f
    
                        diarr = di.GetDirectories()
                        fiArr = di.GetFiles()
                    Next di
                    total = Math.Round((Size / 1048576), 0)
                    allsizes = allsizes + total
                End If
                currentfolder = currentfolder + 1
            Next
    
            Label2.Text = "Total: " & allsizes & "MB"
        End Sub

    miércoles, 23 de agosto de 2017 17:33
  • Me parece que agregas dos "\\" al formato, fijate que utilizasEnvironment.GetEnviromentVariable(User...) & "\" para  luego agregarle  ListBox1.Items(currentfolder) & ("\boot.Bin") . Sugeriría colocar en un string y mediante msgBox verificar el resultado antes de buscar

    Saludos

    miércoles, 23 de agosto de 2017 17:43
  • Hola:

     Fíjate en esta linea: 

    My.Computer.FileSystem.FileExists(checkpath & ListBox1.Items(currentfolder) & "\boot.bin") = True Then

     Antes de llamar a FileExists y pasarle esos argumentos, asegúrate que el path que estas proporcionando sea un path valido.

     Si estas seguro que CheckPath tiene un valor (no es necesario que concatenes el "\"), que "ListBox1.Items(currentfolder)" devuelve un valor entonces sugeriría que armes el path usando el método Combine de la clase Path que para eso precisamente es que fue creada:

    Path.Combine Method 

     Analiza el ejemplo proporcionado en la documentación, si tienes alguna duda por favor hacérnosla saber y te apoyamos.


    Saludos desde Monterrey, Nuevo León, México!!!

    miércoles, 23 de agosto de 2017 22:04