2009-05-15 9 views
1

Dies ist ein Code, um eine Website von listview zu entsperren, aber jetzt möchte ich eine Website entsperren, die zuvor blockiert wurde. Wie kann ich das machen?Wie entsperrt man die Webseite, die blockiert ist, mit C#?

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

Antwort

7

Es ist nicht der richtige Weg, um eine Website zu blockieren, aber hier ist der Weg zu ‚entsperren‘ eine Website, die von Ihrem Code ‚blockiert‘ wird, ist einfach:

  1. die Host-Datei lesen
  2. finden Sie die Website URL von Regex
  3. löschen Sie die Zeile
  4. speichern Sie die Datei.
3

Sie können System.IO.File ‚s ReadAllLines & WriteAllLines Funktionen und Streifen aus nur die Zeile, die Sie

 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

Code Golf

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

einfach entfernen möchten verwenden Hosts ursprüngliche Datei ersetzen.

Wenn Sie originale Hosts-Datei möchten, dann kann ich Ihnen senden.

+0

Das würde "jede * Seite", nicht * eine * Seite "entsperren". –