从U盘读取源文件后显示的图像混乱
最近在弄一个图像显示软件,需要将文件夹里的图片读取出来,然后按照拍摄的次序叠好后构建3维模型。
但开发中遇到一个诡异的bug,将程序置于U盘运行时,读取到图片后生成的图像是不正常的;但程序放在硬盘时就没有问题……
如下图中圈出部分,这部分是应该接到箭头所示位置的。
最初怀疑可能是多线程写得有问题,但将程序改为单线程后还是有问题。然后就只能怀疑图像的叠加时应该是出问题了……
但要想将程序放置于U盘同时又能在电脑上进行调试,需要将debug版本程序copy到U盘并启动,然后在调试中调出 附加到进程 ,然后在可用进程中找到你需要调试的程序,最后点击附加即可。
通过上述操作最后定位到问题点代码为:
DirectoryInfo _directoryInfo = new DirectoryInfo(currentCase.SeriesPath); FileInfo[] fileInfos = _directoryInfo.GetFiles("*.dcm", SearchOption.TopDirectoryOnly);
上述代码的fileInfos正常情况下的排序应该是如下图中所示情况:
但只要程序在U盘中时就会出现下述情况:
当前的解决办法是将fileInfos进行一个按文件名的排序来解决的……后续有更好的办法,再做补充。
*****有道无术,术尚可求;有术无道,止于术。*****