我在项目中建立了一个data目录用来保存一些数据文件及图片的,那我再winform项目中该如何定位到这个目录呢,我现在的做法是用相对路径,就是../../data的做法,我发现是有问题的,在使用用户控件是时路径是变化的,那该如何处理呢,我知道在web项路径地址可以在配置文件web.config中设置,那winform程序有没有类似的做法呢 谢谢 
还有就是如果程序要发布成setup项目,那是否相应的路径信息也要做调整呢,比如我要把data目录添加到setup项目的application file中,那我原来程序中获取data路径的程序是否也应该调整,有什么方法可以不用调整

解决方案 »

  1.   

    调试的时候是调试的bin-debug-下面的内容
    一般都是使用相对路径,如果有特殊情况需要绝对路径的时候,正规一点会将程序运行目录在安装的时候写入注册表,然后从注册表中获取信息进行操作
      

  2.   

    winform也可以做配置文件,最简单的方法就是弄一个xml 然后存取路径 在安装时写入安装路径 或者也可以将路径存在注册表中读取 另外不明白相对路径随用户控件的变化是什么含义?
      

  3.   

    string path = AppDomain.CurrentDomain.BaseDirectory;
      

  4.   

    string s= Application.StartupPath;这个是程序启动的路径。
      

  5.   

    string CurrentDir = System.Windows.Forms.Application.StartupPath+"\\data";
      

  6.   

    environment.currentdictionary
    System.Windows.Forms.Application.StartupPath
    这些都是程序启动的路径
      

  7.   

    1 可自己生成一个xml文件,其中的内容可经过加密处理,取出来时,解密
    2 也可直接使用app.config
      

  8.   


    一般我搞项目都是把所有的输出都定位在解决方案的某个单独的目录里面,而不是它的什么debug\bin或relase\bin. 
    这样少好多麻烦。像你用适合于当前调试环境的相对路径,但是正式发布时会出错。
      

  9.   

                string sspp = "";
                Label labName = new Label();            allAllCheckIn allaCheck = setWoDeZhuJiUserWangSuJuan();
                List<allCheckIn> listAll = allaCheck.allCheckIn;
                if (listAll.Count == 0)
                {                webBrowser1.Visible = false;
                    labName = new Label();
                    labName.Text = "此好友没有留下足迹.....";
                    labName.Location = new Point(40, 15);
                    QuanBUtAOyON.Controls.Add(labName);
                }
                else
                {                for (int i = 0; i < listAll.Count; i++)
                    {
                        allCheckIn aci = (allCheckIn)listAll[i];
                        lat = aci.ucLatitude;
                        longLit = aci.ucLongitude;
                        if ((listAll.Count - 1) == i)
                        {
                            sspp += "map.addOverlay(new GMarker(new GLatLng(" + lat + "," + longLit + ")));bounds.extend(new GLatLng(" + lat + "," + longLit + "));map.setCenter(bounds.getCenter(),map.getBoundsZoomLevel(bounds))";
                        }
                        else
                        {
                            sspp += "map.addOverlay(new GMarker(new GLatLng(" + lat + "," + longLit + ")));bounds.extend(new GLatLng(" + lat + "," + longLit + "));map.setCenter(bounds.getCenter(),map.getBoundsZoomLevel(bounds));";                    }
                    }
                }            string str = "<script src=" + "\" http://maps.google.com/maps?file=api&amp;v=2.x&amp;key=ABQIAAAA63hCTYgBw22Tb_BQ2z57kxTDeLTqYUPOaeDy6AXuVtOUt-ZythSYP16CQEkJchxtmz7AVWsXpEflCQ\""
                 + "type=" + "\"text/javascript\"" + "></script>" +
                 "<script type=" + "\"text/javascript\"" + ">" +
                     "var map=" + "\"\"" + ";" +
                     "function initialize() {" +                     "if (GBrowserIsCompatible()) {" +
                         "map = new GMap2(document.getElementById(" + "\"map_canvas\"" + "));" +
                         "map.addControl(new GSmallMapControl());" +
                         "var bounds = new GLatLngBounds();" +             sspp                  + " } }</script>"              + "</head>  " +
                 " <body onload=" + "\"initialize()\"" + ">" +
                         "<div id=" + "\"map_canvas\"" + "style=" + "\"width:310px; height:455px\"" + "></div>" +
                     "</body>" +
                 "</html>";            #region 流的操作
                //创建一个文件流 
                FileStream fs = new FileStream("D:\\Jilly\\Jilly\\wangsujuan.html", FileMode.Create);
                // FileStream fs = new FileStream("d:\\MyFiles.html", FileMode.Create);
                //将字符串的内容放入缓冲区 
                byte[] buffer = new byte[str.Length];
                for (int i = 0; i < str.Length; i++)
                {
                    buffer[i] = (byte)str[i];
                }
                //写入文件流 
                fs.Write(buffer, 0, buffer.Length);
                //关闭文件流
                fs.Close();
                #endregion
    里面的  D:\\Jilly\\Jilly\\wangsujuan.html  这个路径设置成相对路径,并且在webbrowser控件中的url也成相对路径,
    希望那位高手指点一下。非常感谢