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); }