Pregunta

Estoy usando Process.Start para funcionar Convert.exe. El propósito de este programa es convertir todos los archivos que se encuentran en la carpeta del exe. Por eso, cuando normalmente lo uso, copio pegar un archivo en la misma carpeta que Convert.exe y luego corro Convert.exe. Convert.exe creará un nuevo "convertido" archivo en la misma carpeta.

Estoy tratando de automatizar este proceso tedioso. Un usuario selecciona un archivo que necesita ser convertida a partir FolderA, lo copio a la misma carpeta donde está Convert.exe y estoy usando Process.Start (Convert.exe) para ejecutarlo. Para ser claro, este "Convert.exe" no acepta argumentos.

El problema: "Convert.exe" no es la conversión de los archivos en su carpeta. En su lugar está la conversión de todos los archivos en FolderA por alguna extraña razón. No sé por qué se tomó esa carpeta, ni siquiera trato de enviarlo como un argumento o nada.

Aquí está el código que tengo:

Dim techInfo As New System.IO.FileInfo(itm.strFilePath)             
techInfo.CopyTo(ConverterPath & techInfo.Name)

Dim procInfoConvert As New ProcessStartInfo
procInfoConvert.CreateNoWindow = False
procInfoConvert.Arguments = ""
procInfoConvert.FileName = ConverterPath & "Convert.exe"

Dim procConvert As Process = Process.Start(procInfoConvert)

Hice una prueba en la que copia pegada un archivo en la carpeta "Convert.exe" y luego simplemente ejecutar este código:

process.start(ConverterPath & "Convert.exe")

El retornos exe nada, igual que si no había ningún archivo en la carpeta.

Lo único que ocurre es que cuando se ejecuta Process.Start, copia el archivo a otra ubicación y se ejecuta desde allí.

Cualquier ideas de alguien?

¿Fue útil?

Solución

Prueba esto:

procInfoConvert.WorkingDirectory = ConverterPath

Esto va a establecer el proceso para iniciar en el directorio que está contenida, en lugar del directorio actual.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top