ใช้คุณสมบัติProcessStartInfo.WorkingDirectoryเพื่อตั้งค่าก่อนเริ่มกระบวนการ หากไม่ได้ตั้งค่าคุณสมบัติไดเร็กทอรีการทำงานเริ่มต้นคือ% SYSTEMROOT% \ system32
คุณสามารถกำหนดค่าของ% SYSTEMROOT% ได้โดยใช้:
string _systemRoot = Environment.GetEnvironmentVariable("SYSTEMROOT");
นี่คือโค้ดตัวอย่างบางส่วนที่เปิด Notepad.exe ด้วยไดเร็กทอรีการทำงานของ% 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);
นอกจากนี้ยังมีตัวแปร Environment ที่ควบคุมไดเร็กทอรีการทำงานปัจจุบันสำหรับกระบวนการของคุณซึ่งคุณสามารถเข้าถึงได้โดยตรงผ่านคุณสมบัติEnvironment.CurrentDirectory
WorkingDirectoryเป็นพา ธ สัมพัทธ์ได้หรือไม่และถ้าเป็นเช่นนั้นมันสัมพันธ์กับอะไรไฟล์ปัจจุบันหรือไดเร็กทอรีของไฟล์ปฏิบัติการปัจจุบัน ฉันมีปัญหาในการทำให้โปรแกรมค้นหาไฟล์ปฏิบัติการที่ฉันกำลังพยายามเริ่มต้น ฉันได้ตั้งค่าไดเร็กทอรีการทำงานเป็นไดเร็กทอรีของ exe (สัมพันธ์กับไฟล์ปัจจุบันและ exe ปัจจุบัน) แต่ไม่พบ