我正在处理需要从文件中读取数据的内容。正如你在下面看到的,我正在浏览带有for循环的文件列表,搜索特定的十六进制字符,我用空格替换字符。 稍后,我用行覆盖原始文件,因为行现在没有十六进制字符,但我不允许覆盖原始字符。我也不允许将行保存为源目录中的新文件(原始文件所在的文件)。
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()吗?
答案 0 :(得分:0)
因为您依赖于API
您无法更改的选项,可以在临时位置创建临时文件,使用正确的数据填充它,加载它然后将其删除。 .NET
提供了一些辅助方法,可以让您的生活更轻松。它们位于System.IO namespace
内。这个在临时用户文件夹中创建临时文件非常有用:
Path.GetTempFileName()
有关详细信息,请查看:Sytem.IO.Path