关于c#程序开机自启后不能读取读取指定配置文件的问题

.Net技术 码拜 6年前 (2015-05-10) 330次浏览 0个评论

把一个窗体程序设置开机自启后,程序开机自启读取的不是我指定位置的config.xml,我指定的是读取启动程序同级目录下的config.xml,它读取的却是C盘system32里的config.xml(我并没有在c盘创建config.xml),而且我手动启动程序,程序能正确读取程序同级目录下的config.xml,求大神教我,今晚肯定是睡不着觉了。

是这样的
用System.Windows.Forms.Application.StartupPath  获取可以保证自启动时一致
会有这样的情况?没碰到过
35分
var filepath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "datas", "config.xml");

CurrentDomain.BaseDirectory具有通用性,对于 windows service和asp.net仍然适用。而不是仅用于winform。

45分
        private static string _startupPath = AppDomain.CurrentDomain.BaseDirectory;

        public static string GetAppPath()
        {
            string path = Path.GetFullPath(_startupPath + “\..\”);
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            return path;
        }

用GetAppPath()方法或缺配置文件地址。

谢谢楼上几位的回答,我试试先。
我发现问题出在哪里了,我设置的是 
 //配置文件的路径
 public static string ConfigPath = Environment.CurrentDirectory + “\config.xml”;
 //软件显示列表xml 的路径
 public static string SoftListXmlPath = Environment.CurrentDirectory + “\Software.xml”;
但是自启后程序读取这两个xml的路径都变成了C:\Windows\System32
如果自启动是写进注册表会出现这样情况,改为创建快捷方式到启动目录就不会这样。
3、4楼正解,用 AppDomain.CurrentDomain.BaseDirectory来定位路径

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于c#程序开机自启后不能读取读取指定配置文件的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!