我一直在尝试制作一个程序来将带宽限制的文件(压缩后)传输到同一网络上的另一台计算机。
我需要限制其带宽以避免饱和(Robocopy 的方式)。
最近,我找到了这个ThrottledStream
类,但它似乎不起作用,因为我可以发送一个 9MB 限制为 1 字节限制的内容,它仍然几乎立即到达,所以我需要知道该类是否存在一些误用。
这是代码:
using (FileStream originStream = inFile.OpenRead())
using (MemoryStream compressedFile = new MemoryStream())
using (GZipStream zippingStream = new GZipStream(compressedFile, CompressionMode.Compress))
{
originStream.CopyTo(zippingStream);
using (FileStream finalDestination = File.Create(destination.FullName + "\\" + inFile.Name + ".gz"))
{
ThrottledStream destinationStream = new ThrottledStream(finalDestination, bpsLimit);
byte[] buffer = new byte[bufferSize];
int readCount = compressedFile.Read(buffer,0,bufferSize);
while(readCount > 0)
{
destinationStream.Write(buffer, 0, bufferSize);
readCount = compressedFile.Read(buffer, 0, bufferSize);
}
}
}
任何帮助,将不胜感激。