質問

Process.startを使用してConvert.exeを実行しています。このプログラムの目的は、EXEのフォルダーにあるすべてのファイルを変換することです。そのため、通常使用する場合は、ファイルをconvert.exeと同じフォルダーにコピーしてから、convert.exeを実行します。 Convert.exeは、同じフォルダーに新しい「変換された」ファイルを作成します。

私はこの退屈なプロセスを自動化しようとしています。ユーザーは、Folderaから変換する必要があるファイルを選択し、Convert.exeが同じフォルダーにコピーし、Process.start(convert.exe)を使用して実行します。明確にするために、この「convert.exe」は議論を受け入れません。

問題:「convert.exe」は、フォルダー内のファイルを変換していません。代わりに、奇妙な理由でFolderaのすべてのファイルを変換しています。なぜそれがそのフォルダーを選んだのかわかりませんが、それを引数として送信しようとさえしません。

これが私が持っているコードです:

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)

ファイルを「convert.exe」フォルダーにコピーしてコピーして、このコードを実行するテストを行いました。

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

EXEは、フォルダーにファイルがない場合と同じように、何も返しません。

私が考えることができる唯一のことは、Process.startが実行されると、ファイルを別の場所にコピーしてそこから実行することです。

誰かがいますか?

役に立ちましたか?

解決

これを試して:

procInfoConvert.WorkingDirectory = ConverterPath

これにより、現在のディレクトリの代わりに、そのプロセスが含まれているディレクトリから開始するように設定されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top