将File.ReadAllBytes的结果转换为File对象而不实际写入它

时间:2018-02-15 04:12:16

标签: c# file bytestream

One Module使用

读取一些文件
File.ReadAllBytes("path")

并将结果存储在数据库表中。

稍后我从表中取结果并正常使用

File.WriteAllBytes("outputPath", binary.Data)

将文件写回来。

现在我必须更改文件的内容。当然,我可以将文件写入临时文件夹,将其作为File对象读回,更改它,将其写回目标文件夹。 但有更聪明的方法吗?直接从二进制数据创建File对象?

1 个答案:

答案 0 :(得分:0)

有一个解决方案。它的编码类:

        var binary = GetBinaryFileFromDatabase();

        var inputLines = Encoding.Default.GetString(binary).Split('\n');
        var outputLines = new List<string>();

        foreach (var line in inputLines)
        {
            var columns = line.Split(';');
            if (columns.Length > 28 && columns[28] != null && columns[28].Length > 0)
            {
                columns[28] = columns[28].Replace(Path.GetFileName(columns[28]), "SomeValue");
            }
            outputLines.Add(string.Join(";", columns));
        }
        File.WriteAllLines(outputPath, outputLines);

谢谢大家!