Gunakan ProcessStartInfo.WorkingDirectory properti untuk menyetelnya sebelum memulai proses. Jika properti tidak disetel, direktori kerja default adalah% SYSTEMROOT% \ system32.
Anda dapat menentukan nilai% SYSTEMROOT% dengan menggunakan:
string _systemRoot = Environment.GetEnvironmentVariable("SYSTEMROOT");
Berikut adalah beberapa contoh kode yang membuka Notepad.exe dengan direktori kerja% ProgramFiles%:
...
using System.Diagnostics;
...
ProcessStartInfo _processStartInfo = new ProcessStartInfo();
_processStartInfo.WorkingDirectory = @"%ProgramFiles%";
_processStartInfo.FileName = @"Notepad.exe";
_processStartInfo.Arguments = "test.txt";
_processStartInfo.CreateNoWindow = true;
Process myProcess = Process.Start(_processStartInfo);
Ada juga variabel Lingkungan yang mengontrol direktori kerja saat ini untuk proses Anda yang dapat Anda akses langsung melalui properti Environment.CurrentDirectory .
WorkingDirectorypath tersebut menjadi path relatif, dan jika demikian, apakah itu relatif terhadap, file saat ini atau direktori dari executable saat ini? Saya kesulitan mendapatkan program saya untuk menemukan executable yang saya coba mulai. Saya telah mengatur direktori kerja ke direktori exe (relatif terhadap file saat ini dan ke exe saat ini), tetapi tidak dapat menemukannya.