2011-12-01 48 views

回答

5

要獲得EXE文件在運行(這是一個很好的位置,以增加像「電子郵件」路徑),使用路徑:

string filePath = Application.StartupPath + "\\Email\\ForgotPassword.txt"; 

此路徑是.. \ BIN \調試\電子郵件當你在VS上運行它,並且在安裝後運行它時,

有交替幾做到這一點像這些訪問的目錄路徑:

string appPath = Path.GetDirectoryName(Application.ExecutablePath); 

using System.IO; 
using System.Reflection; 

string path = Path.GetDirectoryName(
        Assembly.GetAssembly(typeof(MyClass)).CodeBase); 

你可以做的Path類操作一樣得到完整的路徑,目錄名等等。

查看詳情MSDN論壇主題How to get the current directory path c# winfows for application

正如你期望做的web應用程序一樣,它不是 可能。

+0

感謝@ Niranjan..This是我尋求... – Worgon

1

如果您未處理來自ASP.NET(或更具體地說,System.Web)的請求,則HttpContext.Current將爲空。那麼答案是:不,你不能做你正在問的問題。也許:

Assembly.GetExecutingAssembly().Location 

結合方法從Path將是有用的嗎?

1

正如其他人所建議的,不可能在Windows應用程序中無用的提升整個新HttpContex。原因在於,儘管您可以獲得某些內容,但其他內容則基於您在Web環境中運行的事實(例如,您將在.Current上下文的Request/Response屬性中添加什麼內容?)。

無論如何,有一些事情你可以做 Enumerate the IIS Web Sites/Virtual Directories, and find yours(對不起的文章代碼抱歉)。 然後您可以獲取該網站的目錄,甚至可以獲得 Open website's Web.Config and read it(對不起,再次輸入錯誤代碼)。

基本上你正在看DirectoryEntry,WebConfigurationFileMap和VirtualDirectoryMapping類,儘管我不太確定你最終會在哪裏。

不過我真的會問你審查你的架構/問題。在Windows應用程序中需要HttpContext後,從一開始就可能會出錯。

也許如果你給我們更多的細節我們可以幫忙嗎?

0

正如其他HttpContex提到的並不意味着在Window應用程序中使用它是爲Web應用程序。

爲了模擬Window應用程序中的HttpContext行爲,您可以聲明全局變量以便稍後在Application中使用它。

也爲當前目錄,你可以使用Assembly.GetExecutingAssembly()。位置

相關問題