见上图,用鼠标按照上述三个步骤先后次序,一一单击进行选择和设置,“生成输出路径”。
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的巴青网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
那么,在你的程序代码里使用:
MsgBox(Application.StartupPath)
显示的就是,你的当前默认的相对路径。
// 获取程序的基目录。
System.AppDomain.CurrentDomain.BaseDirectory
// 获取模块的完整路径。
System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
// 获取和设置当前目录(该进程从中启动的目录)的完全限定目录。
System.Environment.CurrentDirectory
// 获取应用程序的当前工作目录。
System.IO.Directory.GetCurrentDirectory()
// 获取和设置包括该应用程序的目录的名称。
System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase
// 获取启动了应用程序的可执行文件的路径。
System.Windows.Forms.Application.StartupPath
// 获取启动了应用程序的可执行文件的路径及文件名
System.Windows.Forms.Application.ExecutablePath
例如:1. AppDomain.CurrentDomain.BaseDirectory 返回结果为: D:\mycode\
Application.StartupPath 返回结果为: D:\mycode
2. Application.StartupPath 只能用于WinForm窗体中,而AppDomain.CurrentDomain.BaseDirectory既可以用于WinForm窗体中,也可以用于类库DLL文件中
你分别用MessageBox.Show(AppDomain.CurrentDomain.BaseDirectory)
MessageBox.Show(Application.StartupPath)
MessageBox.Show(My.Application.Info.DirectoryPath) 看看各自的结果,就会明白
我没有设置关联,只是把文件拖到程序文件上打开,应该是一样的。
主要是看程序启动时的命令行参数My.Application.CommandLineArgs,里面包括要打开的文件路径。
在Sub Main 或者 启动窗口的Load事件里添加代码
If My.Application.CommandLineArgs.Count 0 AndAlso My.Computer.FileSystem.FileExists(My.Application.CommandLineArgs(0)) Then‘参数不为空且文件存在
Dim s As New IO.StreamReader(My.Application.CommandLineArgs(0))
MsgBox(s.ReadToEnd)
End If
你还可以处理更多的命令行参数。
关于命令行参数
1、如果你的窗体就是你当前工程这个EXE本身的窗体,
那么窗体所在的路径就是工程的启动路径,用下面的语句获取:
AppPath=Application.StartupPath
2、如果你的窗体是你自己LoadLibrary的某个DLL的窗体,那么你既然能LoadLibrary,就应该知道它的路径,所以不用问了。