प्रक्रिया शुरू करने से पहले इसे सेट करने के लिए 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);
एक पर्यावरण चर भी है जो आपकी प्रक्रिया के लिए वर्तमान कार्यशील निर्देशिका को नियंत्रित करता है जिसे आप सीधे Network.CurrentDirectory संपत्ति के माध्यम से एक्सेस कर सकते हैं।
WorkingDirectoryएक सापेक्ष पथ हो सकता है, और यदि हां, तो यह किसके सापेक्ष है, वर्तमान फ़ाइल या वर्तमान निष्पादन योग्य की निर्देशिका? मुझे मेरे प्रोग्राम को क्रियान्वित करने में दिक्कत हो रही है जिसे मैं शुरू करने की कोशिश कर रहा हूं। मैंने कार्यकारी निर्देशिका को exe (वर्तमान फ़ाइल के सापेक्ष और वर्तमान exe) की निर्देशिका में सेट कर दिया है, लेकिन यह नहीं मिल सकता है।