Ecriture dans le fichier hosts [Résolu]

Signaler
Messages postés
15
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
21 février 2009
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
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

Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
23
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
---------------------
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
23
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
---------------------
Messages postés
15
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
21 février 2009

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?
Messages postés
15
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
21 février 2009

Ah oui en effet tout fonctionne, j'avais fais une petite erreur. Merci beaucoup!
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Me demande ce que ça donne sous un windows vista ce code... à mon avis, il doit hurler à la mort non?

<hr />
-Blog-
-Site Perso-
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
23
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
---------------------
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
 

<hr />
-Blog-
-Site Perso-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
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
*/