AYUDA! Extraer nombre y extension de archivo

Iniciado por rochro, 6 Junio 2014, 17:34 PM

0 Miembros y 1 Visitante están viendo este tema.

rochro

Hola a todos, quisiera apoyo con este codigo. Soy principiante en programacion y trato de entender.

La fin de este código es que tiene que ejecutar un programa (runpkr) a través de un comando por consola en todos los archivos que esten ubicados en la carpeta.

ejem:

DIRECTORIO
  - archivo1.t01
  - archivo2.t01

comando a ejecutar por consola en cada archivo:  runpkr00 -d archivo1.t01

Código (vb) [Seleccionar]
Dim midirectorio As String = TextBox1.Text
       If midirectorio = "" Then
           MessageBox.Show("Debe seleccionar la ruta donde se encuentra la data", "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Error)
       Else

           Try

               My.Computer.FileSystem.CopyFile(
                "C:\Program Files\convert data\runpkr00.exe",
                midirectorio & "\runpkr00.exe",
               Microsoft.VisualBasic.FileIO.UIOption.AllDialogs,
                Microsoft.VisualBasic.FileIO.UICancelOption.DoNothing)
           Catch ex As Exception
               MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)

           End Try
           If My.Computer.FileSystem.FileExists(midirectorio & "\runpkr00.exe") Then
               For Each Archivo As String In My.Computer.FileSystem.GetFiles(midirectorio, FileIO.SearchOption.SearchAllSubDirectories, "*.t01")
                   Console.WriteLine("runpkr00.exe -d" & Archivo)
               Next
           End If

       End If


Se que algo esta mal. Quisiera su apoyo.


Gracias. =)

Shell Root

Porque sabes? Que error te muestra?
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

rochro


No me sale error. Sólo que no llega a ejecutarse el for.

ivancea96

Código (vb) [Seleccionar]
If My.Computer.FileSystem.FileExists(midirectorio & "\runpkr00.exe") Then

Supongo que será esa condición.

"\runpkr00.exe"

Pusiste \runpkr...
el \r se interpreta como un caracter especial. Para poner una '\' dentro de un string, ponla 2 veces.

"\\runpkr00.exe"

Si no me equivoco, debería ir así.

rochro

Ahora me hice mas enriedo. Cambie el código por esto:

Código (vbnet) [Seleccionar]
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim midirectorio As String = TextBox1.Text
        Dim archivo = My.Computer.FileSystem.GetFiles(midirectorio, "*.t01")

        If midirectorio = "" Then
            MessageBox.Show("Debe seleccionar la ruta donde se encuentra la data", "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Error)
        Else

            Try

                My.Computer.FileSystem.CopyFile(
                 "C:\Program Files\convert data\runpkr00.exe",
                 midirectorio & "\runpkr00.exe",
                Microsoft.VisualBasic.FileIO.UIOption.AllDialogs,
                 Microsoft.VisualBasic.FileIO.UICancelOption.DoNothing)
            Catch ex As Exception
                MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)

            End Try
        End If


        If My.Computer.FileSystem.FileExists(midirectorio & "\runpkr00.exe") Then


            For Each archivo  As String
                'Dim archivo = My.Computer.FileSystem.GetFileInfo(File)

                If LCase(archivo(File)) = LCase("t01") Then

                    Dim comando As String
                    comando = "runpkr00.exe -d " & archivo & ".t01"
                    Shell("cmd.exe /k" & comando)

                End If
            Next
           
        End If



    End Sub



Algo de ahi me falla porque no corre.

El objetivo es que a cada archivo que se encuentra en el directorio aplique el comando runpkr00 -d archivo.t01  (runpkr00 es un programita que funciona al llamarlo por comandos)

ivancea96


rochro

Cita de: ivancea96 en  7 Junio 2014, 00:09 AM
Parece que ni leíste mi mensaje ·_·

Perdón, si lo leiii!! .. hice lo que me dijiste y tampoco me funciono.

ivancea96

Busca mediante un log, por ejemplo, los resultados de:

My.Computer.FileSystem.FileExists(midirectorio & "\runpkr00.exe")
Asegúrate de que retorna TRUE

midirectorio & "\\runpkr00.exe"
Asegúrate de que está todo bien escrito y correcto.