【发布时间】:2015-07-20 21:48:48
【问题描述】:
我正在使用 c#,并正在寻找一种方法来创建一个目录的路径,该目录将映射到 IO.Stream 而不是实际的文件系统。
我希望能够将文件“保存”到该路径,操作内容或文件名,然后将它们从该路径保存到文件系统中的常规文件中。
我知道我可以使用临时文件,但我宁愿使用内存来兼顾安全性和性能。
这种东西存在,according to this answer,在Java 中,使用FileSystemProvider 类。我正在寻找一种在 c# 中执行此操作的方法。
我已经尝试了所有我能想到的搜索,但只提出了 java 答案和使用临时文件的建议。
甚至可以使用 .net 吗?
基本上,我正在寻找一种将文件直接保存到内存的方法,就像它们保存在文件系统中一样。
因此,例如,如果我有一个公开保存方法 (save(string fullPath)) 或类似 SmtpServer.Send(MyMsg) in this question 的第 3 方类,我可以选择该路径并将其保存到内存流中,而不是保存到驾驶。 (这里主要是我想提供一个path,它会直接导致memory stream)。
【问题讨论】:
-
Dictionary<string, MemoryStream>将文件名映射到内存流怎么样? -
我可能应该让它更清楚,但我想要这样做的原因之一是我可以将文件从外部来源(如 sql 备份或框架类)保存到内存中。我不明白如何使用 Dictionary
让我能够做到这一点。 -
框架类通常与
Stream对象一起使用,所以你很擅长。至于外部来源,您从他们那里读取数据的方式是什么?如果你举一个具体的例子可能会有所帮助。 -
我实际上认为这是对 2 个 stackoverflow 问题的可能解决方案:one on how to save mail messages with a specified name 另一个是关于如何确保 sql 备份是由同一软件创建的(我可以'现在找不到)。这种事情在这两种情况下都可能有用。
-
如果您仍然不喜欢使用
Dictionary<string, MemoryStream>,那么您可以相对轻松地为使用MemoryStream作为文件内容存储的虚拟文件夹和文件创建自己的结构。
标签: c# .net temporary-files