Exemplo n.º 1
0
        private void ExecuteFtpList(string uri)
        {
            ItemsToDisplay.Clear();
            Uri serverUri = new Uri(uri, UriKind.Absolute);

            if (serverUri.Scheme != Uri.UriSchemeFtp)
            {
                Output = "wrong uri";
                return;
            }

            FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri);

            request.Method      = WebRequestMethods.Ftp.ListDirectoryDetails;
            request.Credentials = new NetworkCredential(Username, Password);
            WebResponse response;

            try
            {
                response = request.GetResponse();
            }
            catch (Exception e)
            {
                MoveFtpPathBack(2);
                ExecuteFtpList(BuildFtpPath());
                return;
            }
            var s = response.GetResponseStream();

            StreamReader sr     = new StreamReader(s, Encoding.UTF8);
            var          result = sr.ReadToEnd();
            var          items  = result.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

            ItemsToDisplay.Add("..");
            foreach (var item in items)
            {
                var split = item.Split('/');
                ItemsToDisplay.Add(split.ElementAt(split.Length - 1));
            }
        }