static void Main(string[] args)
        {
            string Input = "";
            string Output = "";
            Stream InputStream = new MemoryStream();
            //Stream OutputStream = new MemoryStream();
            StreamOperator StmOper = new StreamOperator();
            var ParamSeparator = new Reewer.FileUtils.ParamSeparator(args);

            Input = ParamSeparator.GetParamValueS(cInput);
            Output = ParamSeparator.GetParamValueS(cOutput);

            MujDelegat mojeInFce = StreamFactory.GetInputStream(Input, StmOper);
            MujDelegat mojeOutFce = StreamFactory.GetOutputStream(Input, StmOper);

            if (mojeInFce != null)
                if (mojeInFce(Input, InputStream))
                    mojeOutFce(Input, InputStream);

            /*

            bool Succ = false;
            if (Input == "")
            {
                Console.WriteLine("\nZdrojovy soubor neexistuje !\n");
                Console.WriteLine("Zadejte vstupni soubor > ");
                Input = Console.ReadLine();
            }
            if (Input != "")
            {
                if (File.Exists(Input))
                {
                    Succ = StmOper.FileToStream(Input, InputStream);
                }
                else if (Input.IndexOf("FTP://", StringComparison.OrdinalIgnoreCase) > 0)
                {
                    // dodelat FromFtp
                }
                else if (Input.IndexOf("HTTP://", StringComparison.OrdinalIgnoreCase) > 0)
                {
                    Succ = StmOper.UrlToStream(Input, InputStream);
                }
            }
            else
            {
                Console.WriteLine("\nNeznámý zdroj !\n");
            }

            if (Succ)
            {
                if (Output.IndexOf("FTP://", StringComparison.OrdinalIgnoreCase) > 0)
                {
                    // dodelat
                }
                else if (Output.IndexOf("HTTP://", StringComparison.OrdinalIgnoreCase) > 0)
                {
                    // dodelat
                }
                else if (Output != "")
                {
                    Succ = StmOper.StreamToFile(InputStream, Output);
                }
                else
                {
                    Console.WriteLine("Zadejte vystupni soubor > ");
                    Output = Console.ReadLine();
                    if (Output != "")
                    {
                        Succ = StmOper.StreamToFile(InputStream, Output);
                    }
                    else
                        Succ = false;
                }
            }*/
        }
 public static MujDelegat GetInputStream(string input, StreamOperator stmOper)
 {
     if (input != "")
     {
         if (File.Exists(input))
         {
             return stmOper.FileToStream;
         }
         else if (input.IndexOf("FTP://", StringComparison.OrdinalIgnoreCase) > 0)
         {
             // dodelat FromFtp
         }
         else if (input.IndexOf("HTTP://", StringComparison.OrdinalIgnoreCase) > 0)
         {
             return stmOper.UrlToStream;
         }
     }
     else
     {
         Console.WriteLine("\nNeznámý zdroj !\n");
     }
     return null;
 }
        public static MujDelegat GetOutputStream(string output, StreamOperator stmOper)
        {
            if (output.IndexOf("FTP://", StringComparison.OrdinalIgnoreCase) > 0)
            {
                // dodelat
            }
            else if (output.IndexOf("HTTP://", StringComparison.OrdinalIgnoreCase) > 0)
            {
                // dodelat
            }
            else if (output != "")
            {
                return stmOper.StreamToFile;
            }
            else
            {
            //dodelat console
            }

            throw new ArgumentException("Nepodarilo se vytvorit stream provider");
        }
        static void Main(string[] args)
        {
            Console.WriteLine("A  Kopirovat soubor");
            Console.WriteLine("B  Stahnout URL");
            Console.WriteLine("--------");
            Console.WriteLine("Esc  Konec");

            ConsoleKeyInfo cki;
            Console.TreatControlCAsInput = true;
            do
            {
                cki = Console.ReadKey();
                if (cki.Key != ConsoleKey.Escape)
                {
                    switch (cki.Key)
                    {
                        case ConsoleKey.A:
                            {
                                Console.WriteLine("Zadejte vstupni soubor > ");
                                string FileFrom = Console.ReadLine();

                                Console.WriteLine("Zadejte vystupni soubor > ");
                                string FileTo = Console.ReadLine();

                                if (File.Exists(FileFrom))
                                {
                                    FileStream FileFromStm = File.OpenRead(FileFrom);
                                    if (File.Exists(FileTo))
                                    {
                                        File.Delete(FileTo);
                                    }
                                    FileStream FileToStm = File.OpenWrite(FileTo);

                                    StreamOperator StmOper = new StreamOperator();
                                    Stream Stm = new MemoryStream();
                                    if (StmOper.FileToStream(FileFrom, Stm))
                                    {
                                        if (StmOper.StreamToFile(Stm, FileTo))
                                        {
                                            Console.WriteLine("\nHotovo !\n");
                                        }
                                    }
                                }
                                else
                                    Console.WriteLine("\nZdrojovy soubor neexistuje !\n");

                                break;
                            }

                        case ConsoleKey.B:
                            {
                                Console.WriteLine("Zadejte vstupni URL > ");
                                string URL = Console.ReadLine();

                                Console.WriteLine("Zadejte vystupni soubor > ");
                                string FileTo = Console.ReadLine();

                                if (File.Exists(FileTo))
                                {
                                    File.Delete(FileTo);
                                }
                                FileStream FileToStm = File.OpenWrite(FileTo);

                                StreamOperator StmOper = new StreamOperator();
                                Stream Stm = File.OpenWrite(FileTo);
                                if (StmOper.UrlToStream(URL, Stm))
                                {
                                    if (StmOper.StreamToFile(Stm, FileTo))
                                    {
                                        Console.WriteLine("\nHotovo !\n");
                                    }
                                }

                                break;
                            }

                        default:
                            {
                                break;
                            }
                    }
                }
            }
            while (cki.Key != ConsoleKey.Escape);
        }