使用没有实际文件的FileStream

时间:2012-03-31 07:27:21

标签: c# file filestream

  

我想使用FileStream类来避免保存任何文件   客户的电脑。但是FileStream的每个构造函数都需要一个路径   到文件。

如何从流创建FileStream而不必将其保存在硬盘上?

编辑:我已经在使用memorystream来存储我的信息。但在某些时候我需要将文件压缩到另一个流中。问题是zip命令(我看过GZipStream - 它将FILES拉到STREAM)需要一个源文件路径(FileStream)。

如果我不能通过从流创建FileStream来超越,是否有其他方式来压缩流?

3 个答案:

答案 0 :(得分:10)

在这种情况下,您应该使用MemoryStream,并确保您的API只需要Stream而不是FileStream。例如:

using(var ms = new MemoryStream()) {
     YourCode(ms);
}

或者,您可以通过FileStream使用临时区域中的文件继续使用Path.GetTempFileName()

答案 1 :(得分:1)

您可以使用其他Stream类型(如MemoryStream),也可以从FileStream派生自己的类,它们什么都不做(或者在任何需要的地方写)。

答案 2 :(得分:0)

FileStream适用于文件。你无法改变这种行为。

您可以查看从System.IO.Stream继承的其他* Stream类,例如MemoryStream