Encoder un FileStream en base64 avec c #
Je sais comment coder /décoder une chaîne simple /à partir de base64.
Mais comment pourrais-je le faire si les données sont déjà écrites sur un FileStream objet. Disons que j'ai seulement accès à l'objet FileStream ne pas le précédemment stocké à l'origine des données. Comment encoder un FileStream base64 avant de me rincer le FileStream dans un fichier.
Ofc seulement je pouvais ouvrir mon fichier et encoder /décoder après j'ai écrit le FileStream pour le fichier, mais je tiens à faire tout cela en une seule étape sans faire deux opérations sur les fichiers l'un après l'autre. Le fichier pourrait être plus grande, et il serait aussi prendre le double de temps à charger, de coder et de l'enregistrer à nouveau après c'était juste enregistré peu de temps avant.
Peut-être que quelqu'un de vous connait une meilleure solution? Puis-je convertir la FileStream pour une chaîne, d'encoder la chaîne, puis de convertir la chaîne de retour à un FileStream, par exemple, ou que ferais-je et comment un tel code?
source d'informationauteur feedwall
Vous devez vous connecter pour publier un commentaire.
Vous pouvez aussi encoder les octets en Base64. Comment obtenir ce à partir d'un flux voir ici: Comment faire pour convertir un Flux dans un byte[] en C#?
Ou je pense qu'il devrait être également possible d'utiliser l' .La méthode ToString() et de coder cela.
Vous pouvez essayer quelque chose de comme que:
Facile comme une extension de la méthode
Depuis le fichier sera plus grand, vous n'avez pas beaucoup de choix dans la façon de le faire. Vous ne pouvez pas traiter le fichier en place depuis qui détruira les informations dont vous avez besoin pour utiliser. Vous avez deux options que je peux voir:
Bien sûr, le point de l'ensemble des flux est pour éviter ce genre de scénario. Au lieu de créer du contenu et de la farce dans un fichier de flux, de le ranger dans un flux de mémoire. Puis l'encoder et seulement ensuite l'enregistrer sur le disque.