我正在构建一个应用程序来使用 wcf 将文件从客户端上传到服务器,并且我正在尝试实现一种在连接失败时恢复上传的方法。假设我有一个 500 KB 的文件,上传开始并且连接失败,只复制了 100 KB。当我恢复时,服务器应用程序知道它有 100 KB。
当我读取使用这样的代码传输的流时:
while ((bytes = stream.Read(buffer, 0, bufferSize)) > 0)
- 那是0(偏移量)我开始读取的字节吗?
如果是这样,我应该从100开始阅读吗?就像是:
while ((bytes = stream.Read(buffer, 100, bufferSize)) > 0)
然后将字节附加到现有的不完整文件?
这是我的代码:
using (FileStream fs = new FileStream(@"C:\" + name, FileMode.Append))
{
int bufferSize = 4 * 1024; // 4KB buffer
byte[] buffer = new byte[bufferSize];
int bytes;
while ((bytes = stream.Read(buffer, 100, bufferSize)) > 0)
{
fs.Write(buffer, 100, bytes);
fs.Flush();
}
stream.Close();
fs.Close();
}
我必须做出哪些改变??