Как разблокировать заблокированный сайт, используя C #? - PullRequest
1 голос
/ 15 мая 2009

Это код для разблокировки любого веб-сайта из списка, но теперь я хочу разблокировать ранее заблокированный веб-сайт. Как я могу это сделать?

String path = @"C:\Windows\System32\drivers\etc\hosts";
StreamWriter sw = new StreamWriter(path, true);
String sitetoblock = "\n 127.0.0.1 http://"+listView1.SelectedItems[0].Text+"";
sw.Write(sitetoblock);
sw.Close();
MessageBox.Show(listView1.SelectedItems[0].Text " blocked");

Ответы [ 4 ]

7 голосов
/ 15 мая 2009

Это не правильный способ заблокировать сайт, но вот способ «разблокировать» сайт, который «заблокирован» вашим кодом, просто:

  1. чтение файла хоста
  2. найти URL сайта по регулярному выражению
  3. удалить строку
  4. сохранить файл.
3 голосов
/ 15 мая 2009

Вы можете использовать функции System.IO.File ReadAllLines & WriteAllLines и просто удалите строку, которую хотите удалить

        string path = @"C:\Windows\System32\drivers\etc\hosts";

        string [] lineArray = System.IO.File.ReadAllLines(path);

        List<string> lines = blah.ToList();

        string sitetoUNblock = string.Format("127.0.0.1 http://{0}", listView1.SelectedItems[0].Text);

        lines.Remove(sitetoUNblock);

        System.IO.File.WriteAllLines(path, lines.ToArray());
1 голос
/ 17 мая 2009

Просто замените файл hosts на оригинальный.

Если вы хотите оригинальный файл hosts, тогда я могу отправить вам.

1 голос
/ 15 мая 2009

Код Гольф

string path = @"C:\Windows\System32\drivers\etc\hosts";
string itemText = listView1.SelectedItems[0].Text;
File.WriteAllLines(path, File.ReadAllLines(path).Where(site=>site!=string.Format("127.0.0.1 http://{0}", itemText)));
...