Ejemplo n.º 1
0
        /// <summary>
        /// Downloads the file the user selects
        /// </summary>
        /// <param name="hostName"></param>
        /// <param name="userName"></param>
        /// <param name="password"></param>
        /// <param name="fileToDownload"></param>
        /// <param name="port"></param>
        public void DownloadSelectedFile(string hostName, string userName, string password, string fileToDownload, int port)
        {
            try
            {
                ToggleProgressBar?.Invoke(this, true);
                var request = (FtpWebRequest)WebRequest.Create(new Uri(string.Format($"ftp://{hostName}/{fileToDownload}")));
                request.Method = WebRequestMethods.Ftp.DownloadFile;

                request.Credentials = new NetworkCredential(userName, password);

                var response       = (FtpWebResponse)request.GetResponse();
                var responseStream = response.GetResponseStream();
                var reader         = new StreamReader(responseStream);
                Console.WriteLine(reader.ReadToEnd());

                Console.WriteLine($"Download complete. Status: {response.StatusDescription}");

                reader.Close();
                response.Close();
                ToggleProgressBar?.Invoke(this, false);
            }
            catch (Exception e)
            {
                Console.WriteLine($"Exception thrown in DownloadSelectedFile(): {e.Message}, {e.StackTrace}");
                ToggleProgressBar?.Invoke(this, false);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Downloads the file the user selects
        /// </summary>
        /// <param name="hostName"></param>
        /// <param name="userName"></param>
        /// <param name="password"></param>
        /// <param name="fileToDownload"></param>
        /// <param name="port"></param>
        public bool DownloadSelectedFile(string hostName, string userName, string password, List <string> fileToDownload, int port)
        {
            try
            {
                bool isValidIp = IPAddress.TryParse(hostName, out IPAddress ipAddress);
                if (!isValidIp && !hostName.ToLower().Equals("localhost"))
                {
                    throw new Exception("invalid hostname/IP");
                }

                if (fileToDownload.Count == 0)
                {
                    MessageBox.Show("Please select a file(s) to download");
                    return(false);
                }

                foreach (var singleFile in fileToDownload)
                {
                    try
                    {
                        ToggleProgressBar?.Invoke(this, true);
                        var request = (FtpWebRequest)WebRequest.Create(new Uri(string.Format($"ftp://{hostName}/{singleFile}")));
                        request.Method = WebRequestMethods.Ftp.DownloadFile;

                        request.Credentials = new NetworkCredential(userName, password);

                        var response       = (FtpWebResponse)request.GetResponse();
                        var responseStream = response.GetResponseStream();
                        var reader         = new StreamReader(responseStream);
                        Console.WriteLine(reader.ReadToEnd());

                        Console.WriteLine($"Download complete. Status: {response.StatusDescription}");

                        reader.Close();
                        response.Close();
                        ToggleProgressBar?.Invoke(this, false);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine($"Exception thrown in DownloadSelectedFile(): {e.Message}, {e.StackTrace}");
                        ToggleProgressBar?.Invoke(this, false);
                        return(false);
                    }
                }
                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message, e.StackTrace, e?.InnerException);
                ToggleProgressBar?.Invoke(this, false);
                return(false);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Uploads the file the user selects
        /// </summary>
        /// <param name="HostName"></param>
        /// <param name="UserName"></param>
        /// <param name="Password"></param>
        /// <param name="FileToUpload"></param>
        /// <param name="Port"></param>
        public void UploadSelectedFile(string HostName, string UserName, string Password, string FileToUpload, int Port)
        {
            double percentage = 0;

            try
            {
                ToggleProgressBar?.Invoke(this, true);
                string        file    = Path.GetFileName(FileToUpload);
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri(string.Format($"ftp://{HostName}" + $"/{file}")));
                request.Method      = WebRequestMethods.Ftp.UploadFile;
                request.Credentials = new NetworkCredential(UserName, Password);
                Stream     ftpStream = request.GetRequestStream();
                FileStream fStream   = File.OpenRead(FileToUpload);
                byte[]     buffer    = new byte[1024];
                int        byteRead  = 0;
                double     read      = 0;
                double     size      = (double)fStream.Length;

                do
                {
                    byteRead = fStream.Read(buffer, 0, 1024);
                    ftpStream.Write(buffer, 0, byteRead);
                    read      += (double)byteRead;
                    percentage = read / size * 100; //Progress percentage.
                }while (byteRead != 0);
                fStream.Close();
                ftpStream.Close();
                ToggleProgressBar?.Invoke(this, false);
                return;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message, e.StackTrace, e?.InnerException);
                ToggleProgressBar?.Invoke(this, false);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Uploads the file the user selects
        /// </summary>
        /// <param name="HostName"></param>
        /// <param name="UserName"></param>
        /// <param name="Password"></param>
        /// <param name="FileToUpload"></param>
        /// <param name="Port"></param>
        public bool UploadSelectedFile(string HostName, string UserName, string Password, List <string> FileToUpload, int Port, bool AbortClient)
        {
            try
            {
                bool isValidIp = IPAddress.TryParse(HostName, out IPAddress ipAddress);
                if (!isValidIp && !HostName.ToLower().Equals("localhost"))
                {
                    throw new Exception("invalid hostname/IP");
                }
                if (FileToUpload.Count == 0)
                {
                    MessageBox.Show("Please select a file(s) to upload.");
                    return(false);
                }
                foreach (var singleFile in FileToUpload)
                {
                    double percentage = 0;
                    try
                    {
                        ToggleProgressBar?.Invoke(this, true);
                        string        file    = Path.GetFileName(singleFile);
                        FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri(string.Format($"ftp://{HostName}" + $"/{file}")));
                        if (AbortClient == true)
                        {
                            request.Abort();
                        }
                        FtpWebRequest request1 =
                            (FtpWebRequest)WebRequest.Create(new Uri(string.Format($"ftp://{HostName}" + $"/{file}")));
                        request1.Method      = WebRequestMethods.Ftp.UploadFile;
                        request1.Credentials = new NetworkCredential(UserName, Password);
                        Stream     ftpStream = request1.GetRequestStream();
                        FileStream fStream   = File.OpenRead(singleFile);
                        byte[]     buffer    = new byte[1024];
                        int        byteRead  = 0;
                        double     read      = 0;
                        double     size      = (double)fStream.Length;

                        do
                        {
                            byteRead = fStream.Read(buffer, 0, 1024);
                            ftpStream.Write(buffer, 0, byteRead);
                            read      += (double)byteRead;
                            percentage = read / size * 100; //Progress percentage.
                        } while (byteRead != 0);

                        fStream.Close();
                        ftpStream.Close();
                        ToggleProgressBar?.Invoke(this, false);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message, e.StackTrace, e?.InnerException);
                        ToggleProgressBar?.Invoke(this, false);
                        return(false);
                    }
                }
                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message, e.StackTrace, e?.InnerException);
                ToggleProgressBar?.Invoke(this, false);
                return(false);
            }
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Default constructor, sets ToggleProgressBar to false initially
 /// </summary>
 public FTPClientModel()
 {
     ToggleProgressBar?.Invoke(this, false);
 }