最近刚完成“CAD电子文件收集系统”,在调试期间遇到了一个问题,搞的我焦头烂额,最后终于搞定拉,但是问题确是值得回味,感觉编程不是这么简单,需要学的知识还很多,下面就把遇到的两个bug写出来,供初学者参考:
在此系统中有两个应用程序域:程序版本检查域和cad电子文件收集域
1,首先启动程序版本检查域,先检测服务器端是否有新版本的“cad电子文件收集”程序,如果有则下载新版本的“cad电子文件收集”程序到本地,启动新版本的“cad电子文件收集”程序,否则启动旧版本的“cad电子文件收集”程序,看下面的程序:
在“CAD电子文件收集域”有这么一段代码:
if(File.Exists("config.txt"))

{

StreamReader sr=new StreamReader("config.txt");

string sep=sr.ReadLine().Trim();

if(sep==null)

{

gcdm=null;

jcdm=null;

sr.Close();

throw new Exception("配置文件错误!");

}

else

{

sr.Close();

string[] arrstr=th.Split(sep.ToCharArray());

try

{

if(arrstr[0].Trim()=="15")

{

gcdm=arrstr[1].Trim();

jcdm=arrstr[1].Trim()+"-"+arrstr[2].Trim();

}

else

{

gcdm=arrstr[0].Trim();

jcdm=arrstr[0].Trim()+"-"+arrstr[1].Trim();

}

}

catch

{

throw new Exception("图号出现错误!");

}

}

}
上面标识红体的程序:判断“cad电子文件收集”程序的初始文件夹中是否有"config.txt"文件,如果不设置
myProcess.StartInfo.WorkingDirectory=Path.GetDirectoryName(asc.ExePath);
则File.Exists("config.txt")将在“程序版本检查域”的初始文件夹中搜索“config.txt”,这显然会产生逻辑错误,因为我们希望在“CAD电子文件收集域”的初始文件夹中搜索“config.txt”。
2,关于时间的问题:我在测试的时候,没有遇到任何问题,我有一个同事,每天把机器搞得挺有个性,他在测试的时候总是报错,我最后终于查到,在取客户机的时间时,总是有问题的,在别人机器上取得时间总是正常的,在他的机器取得时间为“2006-5-10 18:00:00 我将上下而求索 路漫漫其修远兮”,我对取出的时间百思不得其解,最后发现他机器任务栏里的时间后面有这么一句话,最后才知道他用“优化大师”设置的,我差点当场晕倒,最后我试着控制格式----失败,我只有这样实现:DateTime.Now.Year.ToString()+"-"+DateTime.Now.Month.ToString()+"-"+DateTime.Now.Day.ToString()+" "+DateTime.Now.Hour.ToString()+":"+DateTime.Now.Minute.ToString()+":"+DateTime.Now.Second.ToString();。如果哪位同仁有好的方法,敬请赐教。