在整个应用程序的许多地方自动更改代码
本文关键字:方自动 代码 许多地 应用程序 | 更新日期: 2023-09-27 18:10:53
我需要在应用程序的许多地方更改代码。
我的应用程序中有两个库。我必须删除一个库,并且必须使用第二个库的组件才能使功能像以前一样工作。
我已经发现哪些组件需要替换哪些组件。就像我在第一个库中有大约30多个类,它们将取代第二个库组件。
是否可以创建任何脚本,其中我可以指定哪些文本将被替换以及由哪些文本替换。
例如:A由B代替,C由D代替,E由F代替,G由H代替,等等
它将类似于查找和替换,但不是手动。
下面的代码将完成所需的操作。
var replaces = new Dictionary<string, string>() { { "A", "B" }, { "C", "D" }, {"E","F"} };
var files = Directory.GetFiles(@"C:'Folder'", "*.txt",SearchOption.AllDirectories);
foreach (var file in files)
{
var text = File.ReadAllText(file);
foreach (KeyValuePair<string, string> ky in replaces)
{
text = text.Replace(ky.Key.ToString(), ky.Value.ToString());
}
string [] splittedpath = file.ToString().Split('''');
string DirectoryPath = @"C:'Folder'Replaced Files'";
string FilePath = "";
for (int i = 0 ; i < splittedpath.Length ; i++)
{
if (i != 0 && i != 1 && i != (splittedpath.Length -1))
{
DirectoryPath = DirectoryPath + splittedpath[i].ToString() + @"'";
}
if(i == (splittedpath.Length -1))
{
FilePath = DirectoryPath + splittedpath[i].ToString();
}
}
Directory.CreateDirectory(DirectoryPath);
File.WriteAllText(FilePath, text);
}
这将创建具有相同目录结构的新文件,而不会替换现有文件。
开发一个自定义工具。
var replaces = new Dictionary<string, string>() { {"A","B"}, {"C","D"}, ...};
var files = Directory.GetFiles(path, "*.cs", Recursive);
foreach (var file in files) {
var text = File.ReadAllText(file);
foreach(var replace in replaces) text = text.replace(replace.key, replace.value);
File.WriteAllText(file);
}
如果你想处理多行需要一些努力…但也可以完成。也许使用regexp是一个好主意…