如何在内存中打开文件
本文关键字:文件 内存 | 更新日期: 2023-09-27 17:58:23
我见过这个术语,但我真的不明白如何在内存中打开文件。
我在一个临时位置将文件写入磁盘,但当某个窗体关闭时需要清理,而当它打开时我无法进行清理。必须清空此文件夹。我想知道,如果我打开内存中的文件,这是否会有所不同?
MemoryStream inMemoryCopy = new MemoryStream();
using (FileStream fs = File.OpenRead(path))
{
fs.CopyTo(inMemoryCopy);
}
// Now you can delete the file at 'path' and still have an in memory copy
我认为您希望使用最近添加到.NET4中的内存映射文件。
http://blogs.msdn.com/b/salvapatuel/archive/2009/06/08/working-with-memory-mapped-files-in-net-4.aspx
内存映射文件.NET
您可以使用FileStream
构造函数的DeleteOnClose
参数:
FileStream fs = new FileStream("<Path Here>", FileMode.Create,
FileAccess.ReadWrite, FileShare.None, 1024, FileOptions.DeleteOnClose);
并且该文件将在关闭时被删除。
我认为这意味着将该文件的内容作为一个整体读取到内存中,然后关闭与该文件的连接。假设它是一个不太大的文件,你可以把它读成一个字节[]:
byte[] fileContent = File.ReadAllBytes(fileName);
如果是文本文件,请使用将其读取为字符串
string fileContent = File.ReadAllText(fileName);
完成后,使用StreamReader稍后读取它,就像读取磁盘上的文件一样。