将 File.ReadAllBytes 的结果转换为 File 对象而不实际写入它
Convert result of File.ReadAllBytes as File object without actually writing it
一个模块使用
读取一些文件
File.ReadAllBytes("path")
并将结果存储在数据库中 table。
稍后我从 table 中获取结果并正常使用
File.WriteAllBytes("outputPath", binary.Data)
写回文件。
现在我必须更改文件的内容。当然,我可以将文件写入临时文件夹,将其作为 File 对象读回,更改它,然后将其写回目标文件夹。
但是有没有更聪明的方法来做到这一点?直接从二进制数据创建文件对象?
找到解决办法了。它的编码 Class:
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);
谢谢大家!
一个模块使用
读取一些文件File.ReadAllBytes("path")
并将结果存储在数据库中 table。
稍后我从 table 中获取结果并正常使用
File.WriteAllBytes("outputPath", binary.Data)
写回文件。
现在我必须更改文件的内容。当然,我可以将文件写入临时文件夹,将其作为 File 对象读回,更改它,然后将其写回目标文件夹。 但是有没有更聪明的方法来做到这一点?直接从二进制数据创建文件对象?
找到解决办法了。它的编码 Class:
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);
谢谢大家!