Question

J'utilise Process.Start pour exécuter Convert.exe. Le but de ce programme est de convertir tous les fichiers qui sont dans le dossier de l'exe. Alors, quand je l'utilise normalement, je copier coller un fichier dans le même dossier que Convert.exe puis exécutez Convert.exe. Convert.exe va créer un nouveau « converti » fichier dans le même dossier.

Je suis en train d'automatiser ce processus fastidieux. Un utilisateur sélectionne un fichier qui doit être converti à partir FolderA, je le copier dans le même dossier où Convert.exe est et j'utilise Process.Start (Convert.exe) pour l'exécuter. Pour être clair, ce "Convert.exe" accepte les arguments NO.

Le problème: « Convert.exe » ne convertit pas les fichiers dans son dossier. Au contraire, il est convertir tous les fichiers FolderA pour une raison bizarre. Je ne sais pas pourquoi il a pris ce dossier, je ne cherche même de l'envoyer comme un argument ou rien.

Voici le code que j'ai:

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)

Je l'ai fait un test où je copier collé un fichier dans le dossier « Convert.exe » puis exécutez simplement ce code:

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

Le ne renvoie rien exe, comme s'il n'y avait pas de fichiers dans le dossier.

La seule chose que je peux penser est que lorsque Process.Start est exécuté, il copie le fichier vers un autre emplacement et fonctionne à partir de là.

Toute personne idées?

Était-ce utile?

La solution

Essayez ceci:

procInfoConvert.WorkingDirectory = ConverterPath

qui va régler le processus pour démarrer dans le répertoire dans lequel il est contenu dans, au lieu du répertoire courant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top