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