仅在主机文件不存在的情况下向主机文件追加一行
Appending a line to a hosts file ONLY if it doesnt already exist
我的代码是这样的;
using (StreamWriter w = File.AppendText(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "drivers/etc/hosts")))
{
w.WriteLine("127.0.0.1 www.google.com");
}
我想删除主机文件中的重复项。如何检查行是否存在并防止再次附加它?
您可以使用这个小的 LINQ 查询来检查是否已经有一行:
bool exists = File.ReadLines(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "drivers/etc/hosts"))
.Any(l => l == "127.0.0.1 www.google.com");
if(!exists)
w.WriteLine("127.0.0.1 www.google.com");
可能是一个简单的解决方案:
只需阅读所有文本并检查您的文本是否存在。如果不写入文件。
string texttowrite = "127.0.0.1 wwwgoogle.com";
string text = File.ReadAllText(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "drivers/etc/hosts"), Encoding.UTF8);
if (!text.Contains(texttowrite))
{
using (StreamWriter w = File.AppendText(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "drivers/etc/hosts")))
{
w.WriteLine(texttowrite);
}
}
我的代码是这样的;
using (StreamWriter w = File.AppendText(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "drivers/etc/hosts")))
{
w.WriteLine("127.0.0.1 www.google.com");
}
我想删除主机文件中的重复项。如何检查行是否存在并防止再次附加它?
您可以使用这个小的 LINQ 查询来检查是否已经有一行:
bool exists = File.ReadLines(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "drivers/etc/hosts"))
.Any(l => l == "127.0.0.1 www.google.com");
if(!exists)
w.WriteLine("127.0.0.1 www.google.com");
可能是一个简单的解决方案:
只需阅读所有文本并检查您的文本是否存在。如果不写入文件。
string texttowrite = "127.0.0.1 wwwgoogle.com";
string text = File.ReadAllText(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "drivers/etc/hosts"), Encoding.UTF8);
if (!text.Contains(texttowrite))
{
using (StreamWriter w = File.AppendText(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "drivers/etc/hosts")))
{
w.WriteLine(texttowrite);
}
}