2009-05-15 4 views
1

Il s'agit d'un code pour débloquer n'importe quel site Web à partir de listview, mais maintenant je veux débloquer un site Web qui a été précédemment bloqué. Comment puis-je faire ceci?Comment débloquer un site Web bloqué à l'aide de 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"); 

Répondre

7

Ce n'est pas la bonne façon de bloquer un site Web, mais voici la façon de « débloquer » un site qui est « bloqué » par votre code est tout simplement:

  1. lire le fichier hôte
  2. trouver l'URL du site par regex
  3. supprimer la ligne
  4. enregistrer le fichier.
3

Vous pouvez utiliser ReadAllLines de System.IO.File & WriteAllLines fonctions et bande juste la ligne que vous souhaitez supprimer

 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 du 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

il suffit de remplacer fichier hosts à l'original.

Si vous voulez le fichier d'hôtes d'origine alors je peux vous envoyer.

+0

Cela "débloquerait" * tous les * sites, pas * a *. –

Questions connexes