public static FTPFile GetFileInfo(Uri uri)
        {
            using (var client = new FTPClientExt())
            {
                client.RemoteHost = uri.Host;
                client.Connect();

                if (string.IsNullOrEmpty(uri.UserInfo) == false)
                {
                    string[] parts = uri.UserInfo.Split(':');

                    if (parts.Count() > 0)
                    {
                        client.User(parts[0]);
                    }
                    if (parts.Count() > 1)
                    {
                        client.Password(parts[1]);
                    }
                }

                var directory = Path.GetDirectoryName(uri.LocalPath).Replace('\\', '/');

                client.ChDir(directory);
                var fileCollection = client.DirDetails();
                var fileName = Path.GetFileName(uri.ToString());
                var file = fileCollection.Single(f => f.Name.Equals(fileName, StringComparison.InvariantCultureIgnoreCase));

                return file;
            }
        public static FTPFile GetFileInfo(Uri uri)
        {
            using (var client = new FTPClientExt())
            {
                client.RemoteHost = uri.Host;
                client.Connect();

                if (string.IsNullOrEmpty(uri.UserInfo) == false)
                {
                    string[] parts = uri.UserInfo.Split(':');

                    if (parts.Count() > 0)
                    {
                        client.User(parts[0]);
                    }
                    if (parts.Count() > 1)
                    {
                        client.Password(parts[1]);
                    }
                }

                var directory = Path.GetDirectoryName(uri.LocalPath).Replace('\\', '/');

                client.ChDir(directory);
                var fileCollection = client.DirDetails();
                var fileName       = Path.GetFileName(uri.ToString());
                var file           = fileCollection.Single(f => f.Name.Equals(fileName, StringComparison.InvariantCultureIgnoreCase));

                return(file);
            }
        }