怪事啊,foreach循环为什么只能获取到一个值?
c#吧
全部回复
仅看楼主
level 7
____京京 楼主
用SharpCompress库遍历tar压缩包里的内容,我是这样写的,但不知道为什么,这个foreach循环只能遍历到压缩包里的第一个文件,后面的全都访问不到,可如果我在foreach开始的位置打个断点,把鼠标放在tar.Entries上加载一下,这样就可以全部访问到了,问下大佬们这是为什么啊?
(需求是不能解压,只能在tar里面遍历,压缩包比较大,有几万个文件)
2024年07月23日 18点07分 1
level 7
____京京 楼主
感觉像是文件没读取完整,按理说这么大的文件读取时应该能感觉到明显的卡顿,但我这个程序是瞬间就读取完了,给我的感觉好像是有什么机制为了加快运行速度,在读取文件的时候偷懒了,只读了文件的一小部分,这种要怎么解决啊?
2024年07月23日 18点07分 2
stream本身就是一点一点读的,不是一次性全部读完。 你这段代码我这里是没啥问题的。
2024年07月24日 01点07分
@塞尔基乌斯º 但是我用foreach遍历不到后面的,试了下小文件可以正常遍历,大文件或者压缩包里面文件数量太多的话,就只能获取到一个
2024年07月24日 04点07分
level 10
你说的这种断点调试类似于Thread. Sleep,你试试加上可不可以
2024年07月26日 01点07分 3
试过了,sleep不管用,只有打断点并且把鼠标放在tar.Entries上显示一下内容,才能好使。
2024年07月31日 14点07分
1