如何在 C# 上替换主机文件

Posted

技术标签:

【中文标题】如何在 C# 上替换主机文件【英文标题】:How to replace the hosts file on C# 【发布时间】:2017-07-25 14:03:57 【问题描述】:

我只想知道如何将用户的主机文件完全替换为另一个? 注意:我想只给用户我的 .exe 编译文件(附有我自己的 hosts 文件),在运行 exe 文件后,用户的 hosts 文件应该替换为我自己附加到我的 exe 文件的 hosts 文件。

【问题讨论】:

【参考方案1】:

简单的方法,你可以使用 IO 库。

        string path = "system32\\drivers\\etc\\hosts";
        string hostfile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), path);

        const string checkIP = "127.0.0.1 localhost";
        if (!File.ReadAllLines(hostfile).Contains(checkIP))
            File.AppendAllLines(hostfile, new string[] checkIP);

别忘了,你的程序必须以管理员权限运行,否则你会得到一个UnauthorizedAccessException异常。

【讨论】:

我认为这会在用户的主机文件上“写入”“127.0.0.1 localhost”。我不想编辑修改文件。正如我所说,我想完全它。

以上是关于如何在 C# 上替换主机文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中用 %20 替换所有空格?

如何在 C# 中用单个空格替换多个空格?

如何在 C# 中使用 Regex 将 [number] 替换为 number - 1?

如何在 C# 中替换字符串路径

如何使用正则表达式匹配从 xml 文件中搜索和替换包含占位符标记的文本。 VB.net 或 C#

如何使用 javascript 正则表达式替换 URL 的主机部分