gpt4 book ai didi

c# - 将大流写入 C#.Net 64K by 64K 中的文件

转载 作者:行者123 更新时间:2023-12-03 07:49:17 25 4
gpt4 key购买 nike

请建议我一个可以用来将流写入文件的好方法。

我只需要一个简单的 C# 函数,它可以将流作为输入并完成工作。我需要对非常大的文件(即> 4GB的文件)执行此操作。

使用 linq、扩展方法等可以更好地完成此操作吗?

请为我提供一个好的实用函数,该函数还可以通过 yield 以百分比形式返回进度。

编辑:我知道循环遍历 byte[] 并将其写入文件。我尝试过 File.WriteAllBytes 方法。但是,我只是在寻找一种使用 linq、yield 和扩展方法来实现此目的的非常好的方法。

最佳答案

编辑:这是一个可以解决问题的实用函数:

更新:将第二个参数更改为文件名

    public delegate void ProgressCallback(long position, long total);
public void Copy(Stream inputStream, string outputFile, ProgressCallback progressCallback)
{
using (var outputStream = File.OpenWrite(outputFile))
{
const int bufferSize = 4096;
while (inputStream.Position < inputStream.Length)
{
byte[] data = new byte[bufferSize];
int amountRead = inputStream.Read(data, 0, bufferSize);
outputStream.Write(data, 0, amountRead);

if (progressCallback != null)
progressCallback(inputStream.Position, inputStream.Length);
}
outputStream.Flush();
}
}

关于c# - 将大流写入 C#.Net 64K by 64K 中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6001813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com