Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 1118|回复: 0

C#下获取当前解决方案的路径

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-6-21 22:21:31 | 显示全部楼层 |阅读模式

    编程时,由于需要,我们常将一些文件放在解决方案下的某个目录中,为了获取到该目录下文件,在C#中,我们常用的方法如网上所见,基本获得的是debug目录

    取得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中根据相对路径来获取绝对路径
    =====================================================================================================================
    上图是一个解决方案(GuidForm)的目录情况,之上提到的方法获得只是"debug"或者"debug\",我的数据PB_COMMONDICS.mdb放到了GuidForm\data\目录下,该如何获取呢?
    可以这样:
    using System.IO;
    
    //string dbstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + @"\data\PB_COMMONDICS.mdb";
    //string dbstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"E:\Projects\GuidForm\GuidForm\PB_COMMONDICS.mdb"; 
    
    string dbstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName + @"\data\PB_COMMONDICS.mdb";


      

    没错,很简单,就是用 Parent属性;不过应该注意的是这种方法适合在调试解决方案文件时使用,如果.exe文件拷到了其他位置,这种方法就不行了。

    http://stackoverflow.com/questions/19001423/getting-path-of-a-to-the-parent-folder-of-the-solution-file-c-sharp

    http://www.cnblogs.com/bq-blog/archive/2012/09/01/2666394.html

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-4-26 22:13 , Processed in 0.065840 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表