我有一個C#應用程序,包括下面的代碼:什麼會導致正在執行的應用程序的當前目錄改變?
string file = "relativePath.txt";
//Time elapses...
string contents = File.ReadAllText(file);
這工作得很好,大部分時間。該文件是相對於該應用程序從其開始的目錄中讀取的。但是,在測試中發現,如果單獨放置大約5個小時,該應用程序將拋出一個FileNotFoundException
,表示無法找到「C:\ Documents and Settings \ Adminstrator \ relativePath.txt」。如果讀取文件的操作立即運行,則從正確的位置讀取文件,我們將其稱爲「C:\ foo \ relativePath.txt」
什麼給出了?而且,最好的解決方案是什麼?解決文件對Assembly.GetEntryAssembly().Location
?
該應用程序的啓動目錄被加載爲當前工作目錄。這是完全可以改變的,如果一個不起眼的代碼部分做到這一點,那麼你最終會說上述行爲。將相對路徑轉換爲絕對路徑。 – workmad3 2008-10-01 15:34:21