我已经看到这个术语的名称,但我真的不明白你如何在内存中打开文件。
我将文件写入临时位置的磁盘,但是当某个表单关闭时需要清理,而当它打开时我不能这样做。这个文件夹被清空是必须的。我想知道我是否在内存中打开文件而不是它会有所作为吗?
答案 0 :(得分:43)
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
答案 1 :(得分:4)
我认为您希望使用最近添加到.NET 4的内存映射文件。
答案 2 :(得分:2)
您可以使用DeleteOnClose
构造函数的FileStream
参数:
FileStream fs = new FileStream("<Path Here>", FileMode.Create,
FileAccess.ReadWrite, FileShare.None, 1024, FileOptions.DeleteOnClose);
,文件将在关闭时删除。
答案 3 :(得分:2)
我认为这意味着将该文件的内容作为一个整体读入内存,然后关闭与该文件的连接。假设它是一个不太大的文件,你可以把它读成一个byte []:
byte[] fileContent = File.ReadAllBytes(fileName);
如果是文本文件,请使用
将其读入字符串string fileContent = File.ReadAllText(fileName);
完成后,使用StreamReader稍后将其读取为磁盘上的文件。