从另一个类中的一个类中的方法调用函数

时间:2019-05-09 18:43:41

标签: c# class methods

您好,因此我获得了从FTP下载文件的非常简单的功能。看起来像这样:

//Download files from FTP, return true of false if succed
        public static bool DownloadFileFromFTP( string ip, string RemoteFilePath, string LocalFilePath, string username, string password)
        {
            try
            {
                FtpClient client = new FtpClient(ip);
                client.Credentials = new NetworkCredential(username, password);
                client.Connect();

                ProgressBar progressBar;
                progressBar = new ProgressBar();
                Progress<double> progress = new Progress<double>(x => {
                    if (x > 0)
                    {
                        progressBar.Report((double)x / 100);
                    }
                });

                bool succes = client.DownloadFile(LocalFilePath, RemoteFilePath, FtpLocalExists.Overwrite, FluentFTP.FtpVerify.Retry, progress);
                if(succes == true)
                {
                    succes = true;
                }
                else
                {
                    succes = false;
                }
                client.Disconnect();
                progressBar.Dispose();
                return succes;

            }
            catch(Exception e)
            {
                MessageBox.Show(e.ToString());
                return false;
            }

        }

这个方法在一个类中,我在另一个类中这样称呼它:

Functions_General.DownloadFileFromFTP("192.168.240.86", "Ultra_Script/path", @"C:\Windows\Temp\Adobe_Reader.exe", "username", "password");

一切正常。但是函数本身内部带有进度条,并在完成下载后将其配置为:

progressBar.Dispose();

但是有一个问题,我需要将其放置在类中,在该类中,调用该方法的方法是否可以实现?

我需要有3个同步进度条,并在3个下载全部完成之后将其销毁。

谢谢

1 个答案:

答案 0 :(得分:0)

您可以将ProgressBar设置为静态字段,以便可以从任意位置访问它。