Ecriture dans le fichier hosts

Résolu
cs_Cactuz Messages postés 15 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 21 février 2009 - 26 janv. 2009 à 20:17
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 31 janv. 2009 à 15:47
Bonsoir à tous les utilisateurs de CSharp FR. Je suis actuellement dans la conception d'un tout petit soft securitaire permettant de bloquer l'accès à l'ordinateur à de nombreux sites. Pour ceci, j'ai choisi de modifier le fichier hosts. Etant un grand débutant j'avoue avoir quelques problèmes. Voici les étapes que j'envisage:

<li>-> trouver le fichier</li><li>-> l'ouvrir</li><li>-> se positionner à la fin du fichier</li><li>-> écrire ce que l'on veut</li><li>-> le refermer</li>Pour trouver le fichier, il faut à mon avis obtenir la lettre du lecteur disk, je procède à ceci:
  System.IO.DirectoryInfo dirInfo = SystemDirectory;

En suite je n'arrive pas à accéder au fichier qui se trouve dans: C:\WINDOWS\system32\drivers\etc
Avez vous des idées? De plus je ne sais comment faire pour écrire à la fin de celui ci...

Merci bien pour votre futures réponses.

8 réponses

billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
27 janv. 2009 à 09:35
Bonjour,

Pour écrire à la fin du fichier, il te suffit d'ouvrir un StreamWriter en mode "Append":
http://msdn.microsoft.com/fr-fr/library/36b035cb(VS.80).aspx

Code:
using(StreamWriter sw = new StreamWriter(@"C:\WINDOWS\system32\drivers\etc\hosts", true))
{
   //Ecriture des données
   sw.Write("toto");

   sw.Close();
}

Quelques liens intéressants:
http://msdn.microsoft.com/fr-fr/library/system.io.streamwriter(VS.80).aspx
http://msdn.microsoft.com/fr-fr/library/3zc0w663(VS.80).aspx

Bonne journée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
3
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
27 janv. 2009 à 17:36
Bonsoir,

Je confirme que cela marche, quelque soit le type du fichier (même sans extension). Il te suffit de spécifier le bon chemin du fichier: @"C:\WINDOWS\system32\drivers\etc\hosts".
Je viens de faire un test qui confirme ceci. L'extension d'un fichier n'est là qu'à titre arbitraire et n'est en aucun cas une barrière d'ouverture du fichier.

Bonne soirée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
3
cs_Cactuz Messages postés 15 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 21 février 2009
27 janv. 2009 à 17:08
Bonsoir billou_13! Merci pour ta réponse, ceci marcherait parfaitement dans le cas d'un fichier portant une extension txt, mais le fichier hosts n'en a pas. En effet, en créant le fichier hosts.txt j'ai pu constaté que mon programme écrivait dedans. Que faire pour "masquer" cette extension?
0
cs_Cactuz Messages postés 15 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 21 février 2009
27 janv. 2009 à 21:34
Ah oui en effet tout fonctionne, j'avais fais une petite erreur. Merci beaucoup!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
27 janv. 2009 à 21:39
Me demande ce que ça donne sous un windows vista ce code... à mon avis, il doit hurler à la mort non?

<hr />
-Blog-
-Site Perso-
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
27 janv. 2009 à 23:54
Au pire, s'il est pas content, il fait un écran bleu :)
Déjà qu'il se gène pas quand je joue trop longtemps...

Bonne nuit,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
0
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
28 janv. 2009 à 09:48
 

<hr />
-Blog-
-Site Perso-
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
31 janv. 2009 à 15:47
Salut,

Le seul "problème" que les utilisateurs ont avec Vista c'est qu'ils ont enfin découvert la vie sans privilèges administratifs actifs par défaut.
Un utilisateur lambda n'est pas censé avoir accès en modification à ce fichier, et c'est d'ailleurs le cas.
Si besoin est de le modifier, l'outil doit être lancé avec un compte disposant de privilèges suffisants (membre du groupe Administrateur, ou d'un groupe auquel on a donner les autorisations suffisantes sur le fichier, ou tout simplement compte auquel on a donner directement les autorisations en question), c'est aussi simple et normal que ça.

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous