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属性设置无效