public FormPrepare(SimpleCommandLineParserWritable parser) { this.parser = parser; InitializeComponent(); Serialize(false); }
static int Main(string[] args) { Ambiesoft.CppUtils.AmbSetProcessDPIAware(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); SimpleCommandLineParserWritable parser = new SimpleCommandLineParserWritable(args); parser.addOption("rf", ARGUMENT_TYPE.MUST); parser.addOption("rfu", ARGUMENT_TYPE.MUST); parser.addOption("rt", ARGUMENT_TYPE.MUST); parser.addOption("rtu", ARGUMENT_TYPE.MUST); parser.addOption("ie", ARGUMENT_TYPE.MUSTNOT); parser.addOption("ic", ARGUMENT_TYPE.MUSTNOT); parser.addOption("cf", ARGUMENT_TYPE.MUSTNOT); parser.addOption("ncf", ARGUMENT_TYPE.MUSTNOT); parser.addOption("ca", ARGUMENT_TYPE.MUSTNOT); parser.addOption("glob", ARGUMENT_TYPE.MUSTNOT); parser.addOption("h", ARGUMENT_TYPE.MUSTNOT); parser.addOption("?", ARGUMENT_TYPE.MUSTNOT); parser.Parse(); if (parser.getInvalidOptions().Length != 0) { StringBuilder sbMessage = new StringBuilder(); sbMessage.AppendLine(Properties.Resources.INVALID_OPTION); foreach (string s in parser.getInvalidOptions()) { sbMessage.AppendLine(s); } sbMessage.AppendLine(); sbMessage.AppendLine(Properties.Resources.HYPHEN_EXPLANATION); ShowAlert(sbMessage.ToString()); return(1); } if (parser["h"] != null || parser["?"] != null) { ShowHelp(); return(0); } StringBuilder sbCheckArguments = new StringBuilder(); using (var prepareForm = new FormPrepare(parser)) { if (parser["rf"] != null) { sbCheckArguments.Append("rf:"); sbCheckArguments.AppendLine(parser["rf"].ToString()); } if (parser["rfu"] != null) { sbCheckArguments.Append("rfu:"); sbCheckArguments.AppendLine(parser["rfu"].ToString()); } if (parser["rt"] != null) { sbCheckArguments.Append("rt:"); sbCheckArguments.AppendLine(parser["rt"].ToString()); } if (parser["rtu"] != null) { sbCheckArguments.Append("rtu:"); sbCheckArguments.AppendLine(parser["rtu"].ToString()); } if (parser["ie"] != null) { sbCheckArguments.AppendLine("ie"); } if (parser["ic"] != null) { sbCheckArguments.AppendLine("ic"); } if (parser["ca"] != null) { sbCheckArguments.AppendLine("ca"); } if (parser["cf"] != null) { sbCheckArguments.AppendLine("cf"); } if (parser["ncf"] != null) { sbCheckArguments.AppendLine("ncf"); } if (parser["glob"] != null) { sbCheckArguments.AppendLine("glob"); } if (parser["h"] != null) { sbCheckArguments.AppendLine("h"); } if (parser["?"] != null) { sbCheckArguments.AppendLine("?"); } sbCheckArguments.AppendLine(); sbCheckArguments.AppendLine(Properties.Resources.DO_YOU_WANT_TO_CONTINUE); if (GetKeyState(VirtualKeyStates.VK_SHIFT) < 0 || GetKeyState(VirtualKeyStates.VK_CONTROL) < 0) { if (DialogResult.OK != prepareForm.ShowDialog()) { return(0); } } } if (parser["ca"] != null) { // check argument if (DialogResult.Yes != CppUtils.CenteredMessageBox(sbCheckArguments.ToString(), Application.ProductName + " " + "check arg", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)) { return(0); } } if (parser["rf"] != null && parser["rfu"] != null) { ShowAlert("TODO"); return(1); } if (parser["rt"] != null && parser["rtu"] != null) { ShowAlert("TODO"); return(1); } if (parser["rf"] == null && parser["rfu"] == null) { ShowAlert(Properties.Resources.MUST_SPECIFY_RF_RT); return(1); } if (parser["rt"] == null && parser["rtu"] == null) { ShowAlert(Properties.Resources.MUST_SPECIFY_RF_RT); return(1); } string strRegFind = string.Empty; if (parser["rf"] != null) { strRegFind = parser["rf"].ToString(); } else if (parser["rfu"] != null) { strRegFind = System.Web.HttpUtility.UrlDecode(parser["rfu"].ToString()); } else { throw new Exception(Properties.Resources.UNEXPECTED_ERROR); } string strTarget = string.Empty; if (parser["rt"] != null) { strTarget = parser["rt"].ToString(); } else if (parser["rtu"] != null) { strTarget = System.Web.HttpUtility.UrlDecode(parser["rtu"].ToString()); } else { throw new Exception(Properties.Resources.UNEXPECTED_ERROR); } if (parser.MainargLength == 0) { ShowAlert(Properties.Resources.NO_FILE); return(1); } Regex regf = null; try { if (parser["ic"] != null) { regf = new Regex(strRegFind, RegexOptions.IgnoreCase); } else { regf = new Regex(strRegFind); } } catch (Exception ex) { CppUtils.CenteredMessageBox(ex.Message); return(1); } bool isAlsoExt = null != parser["ie"]; if (parser["cf"] != null && parser["ncf"] != null) { ShowAlert(Properties.Resources.BOTH_CF_NCF_SPECIFIED); return(1); } bool dryrun = parser["ncf"] == null; Dictionary <string, string> targets = new Dictionary <string, string>(); string[] mainArgs = ConstructMainArgs(parser); try { foreach (string orgFullorRelativeFileName in mainArgs) { FileInfo fiorig = new FileInfo(orgFullorRelativeFileName); string orgFileName = getProperName(fiorig, isAlsoExt); string orgFolder = fiorig.DirectoryName; string newFileName = regf.Replace(orgFileName, strTarget); if (!isAlsoExt) { newFileName += fiorig.Extension; } targets.Add(fiorig.FullName, orgFolder + @"\" + newFileName); } if (dryrun) { StringBuilder sbDryAll = new StringBuilder(); StringBuilder sbDryChanging = new StringBuilder(); bool bRenameExists = false; foreach (string org in targets.Keys) { if (org != targets[org]) { bRenameExists = true; string tmp = string.Format("\"{0}\" ->\r\n\"{1}\"", Path.GetFileName(org), Path.GetFileName(targets[org])); sbDryAll.Append(tmp); sbDryChanging.Append(tmp); sbDryChanging.AppendLine(); sbDryChanging.AppendLine(); } else { sbDryAll.AppendFormat("\"{0}\" -> " + Properties.Resources.NO_CHANGE, Path.GetFileName(org), Path.GetFileName(targets[org])); } sbDryAll.AppendLine(); sbDryAll.AppendLine(); } using (FormConfirm form = new FormConfirm()) { form.Text = Application.ProductName + " " + Properties.Resources.CONFIRM; form.lblMessage.Text = !bRenameExists ? Properties.Resources.NO_FILES_TO_RENAME: Properties.Resources.DO_YOU_WANT_TO_PERFORM; form.initialTextAll_ = sbDryAll.ToString(); form.initialTextChanging_ = sbDryChanging.ToString(); form.btnYes.Enabled = bRenameExists; if (DialogResult.Yes != form.ShowDialog()) { return(0); } } } foreach (string org in targets.Keys) { if (org != targets[org]) { if (Directory.Exists(org)) { if (!tryMoveFile(org, targets[org], Directory.Move)) { return(1); } } else if (File.Exists(org)) { if (!tryMoveFile(org, targets[org], File.Move)) { return(1); } } else { CppUtils.Alert(string.Format(Properties.Resources.FILE_NOT_EXIST, org)); } } } return(0); } catch (Exception e) { CppUtils.Fatal(e.Message); return(-1); } }