StreamWriter:有没有办法在不直接写入磁盘的情况下写入内存?

时间:2012-09-22 12:04:23

标签: windows temporary-files

我有一个应用程序,在某个时刻必须创建一个临时文件,然后删除它。所以我在考虑是否可以在内存中创建临时文件而不是直接创建到磁盘中。然后我想从内存中读取它来执行一些操作,最后在做了一些事情之后,从内存中删除它。如果可能,如何在.NET Framework和C#中执行此操作。另外,直接使用内存而不是磁盘可以影响性能吗?

我想直接使用内存而不是磁盘,因为我害怕某些Windows权限不允许将文件写入磁盘的某些位置...所以另一个疑问是:如果使用磁盘而不是内存是有一个安全的地方写临时文件,并避免写入Windows XP,Vista,7,8的权限冲突?我的意思是,写一个临时文件然后删除它的地方总是安全的。也许,在user \ Local Settings \ Temp文件夹中?它是最好的地方吗?我想知道一个安全的地方来保存临时文件,然后删除它们适用于Windows版本:XP,Vista,7和8。

感谢。

2 个答案:

答案 0 :(得分:2)

您可以使用MemoryStream写入内存而不是磁盘。使用内存流可以更好地执行性能,因为磁盘的写入速度通常较慢。一如既往:优化之前的配置文件。

有关临时文件夹的信息,请参阅此主题:How to get temporary folder for current user

答案 1 :(得分:-2)

您应该能够编写自己继承自Stream类的类,覆盖其方法(读/写等),并在其中维护您自己的stringbuilder或任何适合您的类。一切都将在记忆中,当然它会非常快。

我认为XP有“文档和设置”,vista / 7有Users文件夹,每个用户都有自己的地方写临时文件,你应该没有问题写在那里。你在想什么是正确的。