Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fichier .txt en lecture seul C#

Sujet résolu
    2 juin 2015 à 10:33:17

    Bonjour à tous !

    Voici mon problème !

    Je suis actuellement sur Visual c# 2008, et dans mon programme je génère un fichier .txt en faisant comme ceci :

    StreamWriter writer = new StreamWriter("C:\\Users\\exemple.txt");

    Puis j'écris dedans en faisant :
    StreamWriter writer = new StreamWriter("C:\\Users\\exemple.txt", Blablabla, Encoding.Unicode);


    Et j'aimerais pouvoir générer le fichier en lecture seul pour sécuriser l'écriture car en effet je ne veux plus que l'on puisse modifier se fichier.

    J'ai cherché sur plusieurs site et forum et je ne trouve aucune solution qui fonctionne, Pouvez vous m'aider svp ?


    • Partager sur Facebook
    • Partager sur Twitter
      2 juin 2015 à 12:28:03

      C'est assez bizarre comme question.

      Vous mettez un fichier dans un répertoire  qui n'est vraiment pas fait pour ça, par un programme lancé par un utilisateur lambda et vous ne voulez pas que ce même utilisateur lambda puisse le modifier avec un autre programme.

      C'est vraiment très alambiqué comme résonnement.

      Il y a des scénarii d'utilisation qui peuvent avoir besoin d'enregistrement de données spécifiques, mais le framework .NET dispose de primitives spécialisées à cet effet.

      Une solution "à la con" c'est que c'est votre MSI d'installation qui créera ce fichier, le programme qui installe le MSI n'est pas lancé par l'utilisateur lambda mais par un service System.

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        2 juin 2015 à 12:45:49

        Mon programme va servir à rechercher, des information et me lés afficher. J'ai aussi programmé cela pour que les informations afficher soit écrite dans un fichier txt pour en garder une trace.

        Tout ceci fonctionne correctement. Par contre je désire que personne ne puisse modifier les informations que j'ai récupéré (au cas ou quelqu'un s’amuserait a venir sur mon ordinateur et faussé mes résultats, par simple mesure de sécurité), c'est pour cela que je voudrai toujours garder une trace de mes résultats dans un fichier txt mais avoir la possibilité de mettre ce fichier en lecture seul.

        J'avais aussi pensé de garder une trace de mes résultats sous format pdf, mais je vous avoue que je ne connais pas assez bien le C# pour cause j'ai écris mon programme en même temps d'apprendre ce langage, c'est pour ça que peut-être certaine ligne de mon programme se répète ou son inutile. 

        • Partager sur Facebook
        • Partager sur Twitter
          2 juin 2015 à 12:47:00

          le répertoire que j'ai choisie précédemment n'est que pour l'exemple, j'ai dédier un répertoire spécifique ou générer mes fichiers.
          • Partager sur Facebook
          • Partager sur Twitter
            2 juin 2015 à 14:10:20

            J'ai réussi a trouver la solution.

            Il fallait faire :

            File.SetAttributes(path, FileAttributes.ReadOnly);

            avec, en reprenant mon exemple :

            string path = "C:\\Users\\exemple.txt";


            Voilà !
            Merci encore pour l'aide !



            • Partager sur Facebook
            • Partager sur Twitter
              2 juin 2015 à 14:39:06

              Et vous considérez qu'il faut un Ph.D en informatique théorique pour cliquer droit sur un fichier pour lui changer les attributs ?

              Je pense que mon neveu de 13 ans ne prendra pas ça pour un exploit (et celui de 8 ne fera même pas wow).

              Ne réinventez pas la roue, si vous voulez des données par utilisateurs, il suffit de simplement utiliser settings utilisateur:

              https://msdn.microsoft.com/en-us/library/bb397750%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

              https://msdn.microsoft.com/en-us/library/bb397755%28v=vs.110%29.aspx

              Le système de sécurité du système de fichier s'occupe de tout cet aspect, et bien mieux que quiconque.

              • Partager sur Facebook
              • Partager sur Twitter
              Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                2 juin 2015 à 14:57:25

                Je pense avoir les compétences pour faire un clic droit sur un fichier et lui changer les attributs, si c'est ce que je voulais faire je n'aurais pas fait un nouveau sujet sur le forum.
                Je voulais que cela se fasse automatiquement, je me doute que cela n'impressionne personne et ce n'est pas le but.

                J'ai réussie à trouver une ligne de code pour changer les attributs, je m'en suis servi et tout fonctionne comme je voulais.

                Mais je vous remercie de votre aide.
                • Partager sur Facebook
                • Partager sur Twitter
                  2 juin 2015 à 16:24:54

                  Le but n'est pas d’impressionner mais de protéger, et votre protection n'en n'est pas une, et très loin de là.

                  Vous faites du travail en plus pour un résultat bien inférieur.

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                    2 juin 2015 à 17:37:45

                    Comme je lés préciser précédemment, je débute en C#, et j'ai "appris" ce langage en même que programmer. J’essaye de faire le mieux que je peux avec le peu de connaissances que j'ai dans ce langage et je suis ici pour apprendre.

                    Je ne cherche pas à impressionner d'où l’incompréhension avec votre remarque concernant vos neveux.  Évidement je regarde les liens que vous m'avez donné qui vont surement beaucoup m’aider. Rien n'est parfait et surtout en programmation.




                    • Partager sur Facebook
                    • Partager sur Twitter

                    Fichier .txt en lecture seul C#

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown