2009-05-15 4 views
1

이것은 listview에서 임의의 웹 사이트 차단을 해제하는 코드이지만 이전에는 차단되었던 웹 사이트의 차단을 해제하고 싶습니다. 어떻게해야합니까?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"); 

답변

7

그것은 여기 웹 사이트를 차단하는 올바른 방법은 아니지만,이 방법은 당신의 코드에 의해 '차단'되는 '차단 해제'사이트 것은 단순히 :

  1. 호스트 파일을 읽을
  2. regex에 의해 사이트 URL을 찾으십시오
  3. 라인을 삭제하십시오
  4. 파일을 저장하십시오.
3

당신은 System.IO.FileReadAllLines & 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

코드 골프

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

을 제거 할 줄을 제거 할 수 있습니다.

원래 호스트 파일을 원한다면 보내 드리겠습니다.

+0

* * 사이트가 아닌 모든 * 사이트를 '차단 해제'합니다. –