public string CopyFileCommand(CopyCommandInfo c)
 {
     try
     {
         var srcByte = LoadFileInMemory(c.SourceFile);
         if (IsFileFromWindowsFileSystem(c.DestinationFile))
         {
             File.WriteAllBytes(c.DestinationFile, srcByte);
             return(SFS_COMMAND_MESSAGE_ONE_FILE_COPIED);
         }
         else
         {
             var fi = _sFsManager.AddFile(c.DestinationFile, srcByte);
             if (fi == null)
             {
                 Console.WriteLine(SFS_COMMAND_ERR_COPYING_FILE);
             }
             else
             {
                 if (_sFsManager.UpdateFileSystem())
                 {
                     return(SFS_COMMAND_MESSAGE_ONE_FILE_COPIED);
                 }
             }
         }
     }
     catch (System.Exception ex)
     {
     }
     finally
     {
         _sFsManager.Clean();
     }
     return(SFS_COMMAND_ERR_ZERO_FILE_COPIED);
 }
        public CopyCommandInfo ParseCopyCommand(string cmd)
        {
            var r    = new CopyCommandInfo();
            var mode = ParseCopyCommandMode.Begin;

            cmd = cmd.Trim();

            for (var i = 0; i < cmd.Length; i++)
            {
                if (cmd[i] == '"')
                {
                    switch (mode)
                    {
                    case ParseCopyCommandMode.Begin: mode = ParseCopyCommandMode.ParseSourceFile; break;

                    case ParseCopyCommandMode.ParseSourceFile: mode = ParseCopyCommandMode.DoneParsingSourceFile; break;

                    case ParseCopyCommandMode.ParseDestinationFile: mode = ParseCopyCommandMode.DoneParsingDestinationFile; break;

                    case ParseCopyCommandMode.DoneParsingSourceFile: mode = ParseCopyCommandMode.ParseDestinationFile; break;

                    case ParseCopyCommandMode.DoneParsingDestinationFile:
                        r.Succeeded = true;
                        break;
                    }
                }
                else
                {
                    switch (mode)
                    {
                    case ParseCopyCommandMode.Begin: break;

                    case ParseCopyCommandMode.DoneParsingSourceFile: break;

                    case ParseCopyCommandMode.ParseSourceFile: r.SourceFile += cmd[i].ToString(); break;

                    case ParseCopyCommandMode.ParseDestinationFile: r.DestinationFile += cmd[i].ToString(); break;
                    }
                }
            }
            return(r);
        }