我想做的事情大致如下:
using System.Data.SQLite;
using System.IO;
//My SQLite connection
SQLiteConnection myCon;
public void ReadAndOpenDB(string filename)
{
FileStream fstrm = new FileStream(filename, FileMode.Open);
byte[] buf = new byte[fstrm.Length];
fstrm.Read(buf, 0, (int)fstrm.Length);
MemoryStream mstrm = new MemoryStream(buf);
//Do some things with the memory stream
myCon = new SQLiteConnection(/*attach to my memory stream for reading*/);
myCon.Open();
//Do necessary DB operations
}
我不打算写入内存数据库,但是我需要能够在连接到程序之前在程序的内存中对该文件执行某些操作。
最佳答案
如果您不介意使用Interop并直接转到CreateFile()(然后将返回的HANDLE包装在FileStream中),则可以查看使用指定的FILE_ATTRIBUTE_TEMPORARY创建文件,只要有缓存,该文件就不会将文件写入磁盘可用,它将在关闭文件句柄时自动删除文件。