public NetFile(byte[] data) { NetFile file = FromArray(data); FileName = file.FileName; Data = file.Data; }
public void DownloadFile(string path, string saveTo) { int packageSize = 0; int bytes = 0; socket.Send(GetSendPathPackage(path)); NetFile file; using (MemoryStream memStream = new MemoryStream()) { byte[] buffer = new byte[_BUFFERSIZE]; do { int received = socket.Receive(buffer); memStream.Write(buffer, 0, received); bytes += received; if (bytes >= 2048 && packageSize == 0) { packageSize = GetPackageSize(memStream.ToArray()); } if (bytes != 0) { bw.ReportProgress((bytes * 100) / packageSize); } }while (bytes < packageSize); packageSize = 0; file = new NetFile(GetReciveFilePackage(memStream.ToArray())); } using (FileStream stream = new FileStream(saveTo + "\\" + file.FileName, FileMode.Create, FileAccess.Write)) { stream.Write(file.Data, 0, file.Data.Length); } Thread.Sleep(progressBarTimeout); }