C#从内存中读取数据

Reading data from memory in C#

我正在做一些需要从文件中读取数据的事情。正如您在下面看到的,我正在使用 for 循环遍历文件列表,搜索特定的十六进制字符,并将该字符替换为空 space。 后来,我用行覆盖了原始文件,因为行现在没有十六进制字符,但我不允许覆盖原始字符。我也不允许在源目录(原始文件所在的目录)中将行保存为新文件。

var fileList = Directory.GetFiles(SourceDirectory, "*.*", SearchOption.TopDirectoryOnly)

foreach (var file in fileList)
{
    var lines = File.ReadAllLines(file);

    for(var i = 0; i < lines.Length; i++)
    {
        if (lines[i].Contains("\u001A"))
        {
            lines[i] = lines[i].Replace("\u001A", " ");
        }
    }

    System.IO.File.WriteAllLines(file, lines);
    var grkFile = new GenericRkFile<FileTypes.FinancialAdvisor, FileTypes.Plan, FileTypes.PlanFund, FileTypes.Header, FileTypes.Trailer>();
    grkFile.LoadData(file);
}

由于 grkFile.LoadData() 是一个文件,我不能将行作为值传递。 我的问题是,我可以以某种方式将行保存为内存中的文件或类似的东西,然后用它传递给 grkFile.LoadData() 吗?

因为您依赖于您无法更改的 API 选项可以是在临时位置创建临时文件,用正确的数据填充它,加载它然后删除它。 .NET 提供了一些帮助方法,可以让您的生活更加轻松。这些位于 System.IO namespace 内。这对于在临时用户文件夹中创建临时文件非常有用:

Path.GetTempFileName() 

更多信息您可以查看:Sytem.IO.Path