【发布时间】:2011-09-14 02:48:52
【问题描述】:
我有一个 FileStream,它由放入一个文件中的多个文件组成,并且我有一个文件长度列表,换句话说,我可以轻松计算所有文件的位置和长度。我要创建的是一个 Open-method,它接受一个文件索引并返回一个只包含该文件的流。目前我已经使用内存流实现了这一点,但这迫使我将整个(不是容器,而是整个包含的)文件复制到内存中,我不想这样做。所以,我想做的是创建一个实现流并采用另一个流、偏移量和长度参数的类,然后是可读和可搜索的,只有当你执行 Seek(0) 时,你才应该到达偏移量的底层流。所以就像一个适配器类,我想知道这是否可能,甚至是一个好主意,或者是否有人对如何解决这个问题有更好的想法。我意识到,如果按照我刚才描述的方式进行操作,我需要确保对底层流的访问是同步的,并且所有打开的部分流都包含一个私有变量,告诉它们当前在流中的位置,但是这个应该是 dooable 吧?有没有人做过这样的事情?还是有一个简单的.NET 类我可以使用?任何帮助将不胜感激。
哦,抱歉英语不好,我忘了安装英文浏览器,所以拼写检查器告诉我一切都错了。
【问题讨论】: