我使用FileStream.CopyTo
复制文件为我编写了一个文件共享应用程序。要在其中添加进度条工具,我发现了十几个链接,并使用CallBack方法使用CopyFileEx
表示使用进度条。详细阅读MSDN docs.I后,为了同一目的找到了另一个选项WebClient
,让我更加困惑。然后我浏览了here,其中作者没有谈到{{1}但是也提倡Stream.CopyTo
。
我已经完成了使用CopyFileEx
方法的编码。对于进度条,它会为我提供设施吗?
PS。我搜索了很多,但没有链接向我展示如何使用CopyTo
实现它。
这是我的代码对于客户端:
CopyTo
服务器端:
NetworkStream netstream = clientSocket.GetStream();
using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
{
try
{
TransmitFileName(netstream, Path.GetFileName(path));
// MessageBox.Show("Starting Data Transfer");
int data_len = (int)fs.Length;
byte[] buffer = new byte[bufferSize];
int totalbytes = 0;
while (totalbytes < data_len)
{
var bytesread = fs.Read(buffer, 0, buffer.Length);
if (totalbytes == data_len) { break; }
try
{
netstream.Write(buffer, 0, bytesread);
totalbytes += bytesread;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
string suff_tb= SizeSuffix(totalbytes);
MessageBox.Show("Total Bytes Receieved" + suff_tb);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
MessageBox.Show("Data transfer completed");
fs.Close();
netstream.Close();
}
}