private void cmdTransferfile_Click(object sender, EventArgs e) { progress.Value = 0; progress.Refresh(); //backgroundWorker1.RunWorkerAsync(); MemoryStream ms = null; ////download file ////Make sure you unsuscribe all DAtaReceived event from port before calling following line. ms = zmodem.ZModemTransfert(txtFileName.Text, (int)numUpDown.Value); if (ms != null) { string fn = Path.Combine(txtLocalDest.Text, Path.GetFileName(txtFileName.Text)); File.WriteAllBytes(fn, ms.ToArray()); } }
static void TestReceiveFile(SerialPort port) { //Initiate a ZModem object var zmodem = new ZModem_Protocol.ZModem(port); MemoryStream ms = null; zmodem.FileInfoEvent += (sender, args) => { Console.WriteLine("File Name: " + args.FileName + ", file size: " + args.Size); }; zmodem.BytesTransferedEvent += (sender, args) => { Console.Write(args.Size + " Bytes transfered" + "\r"); }; zmodem.TransfertStateEvent += (sender, args) => { Console.WriteLine("Current Status: " + args.State); }; //download file "toto" //Make sure you unsuscribe all DAtaReceived event from port before calling following line. //for (int i = 0; i < 10; i++) //zmodem.ZModemTransfert("Test.jpg", 2000); //backgroundWorker1.RunWorkerAsync(); ////download file ////Make sure you unsuscribe all DAtaReceived event from port before calling following line. ms = zmodem.ZModemTransfert("test.txt", 10); if (ms != null) { var basePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "data"); if (!Directory.Exists(basePath)) { Directory.CreateDirectory(basePath); } File.WriteAllBytes(Path.Combine(basePath, $"Verison-{DateTime.Now:yyyyMMdd-HHmmss-fff}.txt"), ms.ToArray()); } Console.WriteLine("Press a key to Exit..."); Console.ReadKey(); }