从U盘读取源文件后显示的图像混乱

发布时间 2023-08-23 17:33:35作者: 盛沧海

最近在弄一个图像显示软件,需要将文件夹里的图片读取出来,然后按照拍摄的次序叠好后构建3维模型。

但开发中遇到一个诡异的bug,将程序置于U盘运行时,读取到图片后生成的图像是不正常的;但程序放在硬盘时就没有问题……

 

如下图中圈出部分,这部分是应该接到箭头所示位置的。

 

最初怀疑可能是多线程写得有问题,但将程序改为单线程后还是有问题。然后就只能怀疑图像的叠加时应该是出问题了……

 

但要想将程序放置于U盘同时又能在电脑上进行调试,需要将debug版本程序copy到U盘并启动,然后在调试中调出  附加到进程  ,然后在可用进程中找到你需要调试的程序,最后点击附加即可。

 

通过上述操作最后定位到问题点代码为:

            DirectoryInfo _directoryInfo = new DirectoryInfo(currentCase.SeriesPath);
            FileInfo[] fileInfos = _directoryInfo.GetFiles("*.dcm", SearchOption.TopDirectoryOnly);

 

上述代码的fileInfos正常情况下的排序应该是如下图中所示情况:

 

但只要程序在U盘中时就会出现下述情况:

 

当前的解决办法是将fileInfos进行一个按文件名的排序来解决的……后续有更好的办法,再做补充。