如何在内存中打开文件?

时间:2011-06-03 12:56:46

标签: c# file-io

我已经看到这个术语的名称,但我真的不明白你如何在内存中打开文件。

我将文件写入临时位置的磁盘,但是当某个表单关闭时需要清理,而当它打开时我不能这样做。这个文件夹被清空是必须的。我想知道我是否在内存中打开文件而不是它会有所作为吗?

4 个答案:

答案 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)

答案 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稍后将其读取为磁盘上的文件。