示例#1
0
        private static void Execute(Regex regex, ITextReplacement replacement, string value, TaskCompletionSource <string> tcs, bool matchExtension)
        {
            try
            {
                if (matchExtension)
                {
                    value = replacement.Apply(value, regex);
                }
                else
                {
                    var ext = Path.GetExtension(value);
                    value  = replacement.Apply(Path.ChangeExtension(value, null), regex);
                    value += ext;
                }

                tcs.TrySetResult(value);
            }
            catch (Exception)
            {
                tcs.TrySetResult(null);
            }
        }
示例#2
0
        private static void Execute(Regex regex, ITextReplacement replacement, string value, TaskCompletionSource <string> tcs, bool matchExtension)
        {
            try
            {
                if (matchExtension)
                {
                    value = replacement.Apply(value, regex);
                }
                else
                {
                    //remove extension, run, re-add extension
                    var ext = Path.GetExtension(value);
                    value  = replacement.Apply(Path.ChangeExtension(value, null), regex);
                    value += ext; //manually append to not mess up file names container dots
                }

                tcs.TrySetResult(value);
            }
            catch (Exception)
            {
                tcs.TrySetResult(null);
            }
        }