Sử dụng thuộc tính ProcessStartInfo.WorkingDirectory để đặt nó trước khi bắt đầu quá trình. Nếu thuộc tính không được đặt, thư mục làm việc mặc định là% SYSTEMROOT% \ system32.
Bạn có thể xác định giá trị của% SYSTEMROOT% bằng cách sử dụng:
string _systemRoot = Environment.GetEnvironmentVariable("SYSTEMROOT");
Dưới đây là một số mã mẫu để mở Notepad.exe với thư mục làm việc của% 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);
Ngoài ra còn có một biến Môi trường kiểm soát thư mục làm việc hiện tại cho quy trình của bạn mà bạn có thể truy cập trực tiếp thông qua thuộc tính Environment.CurrentDirectory .
WorkingDirectory
là một đường dẫn tương đối, và nếu có, thì nó có liên quan gì đến, tệp hiện tại hoặc thư mục của tệp thực thi hiện tại không? Tôi đang gặp sự cố khi đưa chương trình của mình tìm tệp thực thi mà tôi đang cố khởi động. Tôi đã đặt thư mục làm việc thành thư mục của exe (liên quan đến tệp hiện tại và với exe hiện tại), nhưng nó không thể tìm thấy.