如题!
  我用Application.StartupPath和Application.ExecutablePath获得的都是FrameWork里面DLL的路径
  FileInfo aa = new FileInfo("\\a.dll"); aa.fullname 只能获取到根目录!!
  如何才能获取到当前程序所在目录呢?最好就是获取项目文件夹所在路径,要是获取dll、exe或者cs所在路径也可以!获取的方式最好通用于winform和webfrom ~~~~
严重感谢!在线等~~~~~

解决方案 »

  1.   

    WebForm可以用
    System.Web.HttpContext.Current.Server.MapPath(".")得到
    Winform
    FileInfo aa = new FileInfo("\\a.dll")
    这样写是得到文件的信息,a.dll并不一定是运行的Application.StartupPath和Application.ExecutablePath,
    System.Environment.Environment.CurrentDirectory
    应该可以的
      

  2.   

    命名空间中需要引用Using System.IO
    然后利用其下面的一个类叫Directory,直接再调用这个类的一个静态方法即可:
    例如:
    string strCurrentPath=System.IO.Directory.GetCurrentDirectory().ToString();
    此时strCurrentPath就是具有当前程序所在目录的一个字符串了.
    -------------------------------------------------------
    如果有帮助,楼主记得给分啊,我分不多了,嘿嘿!
      

  3.   

    我现在写的是一个dll 
    string strCurrentPath=System.IO.Directory.GetCurrentDirectory().ToString();
    System.Environment.Environment.CurrentDirectory()
    这两个居然获得的都是"winnnt\System32"  5555555
      

  4.   

    2楼3楼的方法,在dll生成之前,编译时无错误,但将dll生成后,在另一个工程调用时,如果你在先前的dll的控件或是其他的什么,比如说是图片的路径用这个,那么现在新的工程在编译的时候就有可能抱错.具体我也说不清楚原因,反正我是遇到过几次了.
      

  5.   

    Application.StartupPath 获取的是 
    C:\WINNT\Microsoft.NET\Framework\v1.1.4322
    Application.ExecutablePath,获取的是
    C:\WINNT\Microsoft.NET\Framework\v1.1.4322\aspnet_wp.exe这个是什么原因呢? :(
      

  6.   

    System.AppDomain.CurrentDomain.BaseDirectory
      

  7.   

    C:\WINNT\Microsoft.NET\Framework\v1.1.4322
    C:\WINNT\Microsoft.NET\Framework\v1.1.4322\aspnet_wp.exe
    都是WebForm下的,
     Web Form用
    System.Web.HttpContext.Current.Request.ApplicationPath
      

  8.   

    其实我写的写的是个dll  为了好测试 我写了个webapp  明天去看一下
    还是先谢谢你  搞定了 利马结贴!
      

  9.   

    web from下:
    System.Web.HttpContext.Current.Request.ApplicationPath
    获取的是虚拟目录
    string qwr= System.Web.HttpContext.Current.Request.PhysicalApplicationPath;
    这个是文件的物理地址现在才明白写的这个dll收到前台webform 或winform调用的影响