1.生成chm文件
首先,下載EasyCHM軟件,此軟件可將HTML文件、TXT文件、圖片和文件夾按照文件層次生成.chm文件。EasyCHM打開界面如圖所示:
點擊“新建”,選擇需要生成.chm文件的文件夾,並選擇文件類型為*.*,如圖所示:
點擊搜素選項(M)——TOP圖標設置——用戶自定義——自定義大標題、小標題圖標——點擊確定,如圖所示:
導入文件后, 如圖所示:
點擊“編譯”,設置CHM相關選項,如圖所示:
點擊“生成CHM”,生成CHM文件,如圖所示:
2.程序添加HelpProvider控件
在程序設計器界面拖一個HelpProvider控件,將GenerateMember屬性設置為True,保證程序中可以使用HelpProvider控件的對象;不要右擊設置HelpNamespace屬性,因為這樣簡單測試可以,但是幫助文檔的路徑會被限制,不利於程序的在其他機器上部署,因為會導致路徑不匹配, 把幫助文檔的路徑設置放到程序中去,並采用相對路徑。
按F1顯示幫助文檔的代碼如下所示,將代碼放到窗體的Load()函數中:
// 按F1顯示CHM幫助文檔 private void Form1_Load(object sender, EventArgs e) { helpProvider1.HelpNamespace = AppDomain.CurrentDomain.BaseDirectory.ToString() + "幫助文檔.chm"; helpProvider1.SetShowHelp(this, true); }
按鈕點擊事件控制幫助文檔顯示的代碼如下所示:
// 點擊按鈕,顯示幫助文檔 private void ToolStripMenuItem_s_Click(object sender, EventArgs e) { Process.Start(AppDomain.CurrentDomain.BaseDirectory.ToString() + "幫助文檔.chm"); }
最終效果如下所示:
winform獲取文件路徑
string str1 =Process.GetCurrentProcess().MainModule.FileName;//獲得當前執行的exe的文件名。
string str2=Environment.CurrentDirectory;//獲取和設置當前目錄的完全限定路徑。
string str3=Directory.GetCurrentDirectory();//獲取應用程序的當前工作目錄。
string str4=AppDomain.CurrentDomain.BaseDirectory;//獲取基目錄,它由程序集沖突解決程序用來探測程序集。
string str5=Application.StartupPath;//獲取啟動了應用程序的可執行文件的路徑,不包括可執行文件的名稱。
string str6=Application.ExecutablePath;//獲取啟動了應用程序的可執行文件的路徑,包括可執行文件的名稱。
string str7=AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//獲取或設置包含該應用程序的目錄的名稱。
“Application.StartupPath”:獲取當前應用程序所在目錄的路徑,最后不包含“\”;
“Application.ExecutablePath ”:獲取當前應用程序文件的路徑,包含文件的名稱;
“AppDomain.CurrentDomain.BaseDirectory”:獲取當前應用程序所在目錄的路徑,最后包含“\”;
“System.Threading.Thread.GetDomain().BaseDirectory”:獲取當前應用程序所在目錄的路徑,最后包含“\”;
“Environment.CurrentDirectory”:獲取當前應用程序的路徑,最后不包含“\”;
“System.IO.Directory.GetCurrentDirectory”:獲取當前應用程序的路徑,最后不包含“\”;
String[] files = System.IO.Directory.GetFiles(path) //返回指定目錄下的文件名
string str = System.IO.Path.GetFileNameWithoutExtension(path);//返回不具有擴展名的指定路徑字符串的文件名
1、取得控制台應用程序的根目錄方法
方法1、Environment.CurrentDirectory 取得或設置當前工作目錄的完整限定路徑
方法2、AppDomain.CurrentDomain.BaseDirectory 獲取基目錄,它由程序集沖突解決程序用來探測程序集
2、取得Web應用程序的根目錄方法
方法1、HttpRuntime.AppDomainAppPath.ToString();//獲取承載在當前應用程序域中的應用程序的應用程序目錄的物理驅動器路徑。用於App_Data中獲取
方法2、Server.MapPath("") 或者 Server.MapPath("~/");//返回與Web服務器上的指定的虛擬路徑相對的物理文件路徑
方法3、Request.ApplicationPath;//獲取服務器上ASP.NET應用程序的虛擬應用程序根目錄
3、取得WinForm應用程序的根目錄方法
1、Environment.CurrentDirectory.ToString();//獲取或設置當前工作目錄的完全限定路徑
2、Application.StartupPath.ToString();//獲取啟動了應用程序的可執行文件的路徑,不包括可執行文件的名稱
3、Directory.GetCurrentDirectory();//獲取應用程序的當前工作目錄
4、AppDomain.CurrentDomain.BaseDirectory;//獲取基目錄,它由程序集沖突解決程序用來探測程序集
5、AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//獲取或設置包含該應用程序的目錄的名稱
其中:以下兩個方法可以獲取執行文件名稱
1、Process.GetCurrentProcess().MainModule.FileName;//可獲得當前執行的exe的文件名。
2、Application.ExecutablePath;//獲取啟動了應用程序的可執行文件的路徑,包括可執行文件的名稱
3、System.IO.Path類中有一些獲取路徑的方法,可以在控制台程序或者WinForm中根據相對路徑來獲取絕對路徑
獲取web物理路徑的方法是Server.MpaPath("~")
C# GenerateMember
GenerateMember屬性和Modifiers一同使用
Modifiers僅當GenerateMember屬性設置為True時有效,其用來設置成員變量的可見級別
GenerateMember屬性設置為False時,Modifiers屬性設置無效