Ответ 1
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
Я рассматриваю этот термин под маркой, но я действительно не понимаю, как вы открываете файл в памяти.
У меня есть файлы, записанные на диск в временном расположении, но это нужно очистить, когда определенная форма закрывается, и я не могу сделать это, когда она откроется. Необходимо, чтобы эта папка была опустошена. Мне было интересно, если бы я открыл файлы в памяти вместо того, изменит ли это?
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
Я думаю, вы хотите работать с файлами Memory Mapped, недавно добавленными в .NET 4.
Вы можете использовать DeleteOnClose
параметр конструктора FileStream
:
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, чтобы прочитать его позже, как файл на диске.