我是C#的无名小卒。
所以,需要来自stackoverflow社区的一点帮助。
我想在内存(而不是存储设备(中创建一个目录结构,并在其中放置一些文件(为了安全和更快的访问目的(。
稍后,其他一些进程/方法希望访问这些目录并读取文件。我认为这可以通过一些内存缓冲区来实现,但我无法在C#中实现。
请帮忙!
提前谢谢。
如果不将文件实际写入存储设备,就无法将文件写入文件系统。请注意,有些ram驱动器充当存储设备,同时将文件保存在内存中。
如果你只想通过字符串键查找一些数据,你可以使用Dictionary<string, MemoryStream>
,虽然很难更快地访问,但数据只能从你的进程中访问。另一种选择可以是zip存档,它的工作原理类似于字典,但也可以压缩内容。
我真的不确定你说的";"安全性";,每当谈到安全时,你真的需要定义你想要防范的威胁类型。将数据写入磁盘并不会自动使其更安全,如果有什么不同的话,它会使的安全性降低,因为从磁盘读取数据比从另一个进程的内存读取数据要容易得多。
您可以检查这段代码并根据需要进行修改。
[HttpPost]
public IActionResult Upload(SingleFileModel model)
{
if (ModelState.IsValid)
{
model.IsResponse = true;
string path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/Files");
//create folder if not exist
if (!Directory.Exists(path))
Directory.CreateDirectory(path);
//get file extension
FileInfo fileInfo = new FileInfo(model.File.FileName);
string fileName = model.FileName + fileInfo.Extension;
string fileNameWithPath = Path.Combine(path, fileName);
using (var stream = new FileStream(fileNameWithPath, FileMode.Create))
{
model.File.CopyTo(stream);
}
model.IsSuccess = true;
model.Message = "File upload successfully";
}