ray_code, j'ai essayé votre code sur mon dossier de .exe. Comme vous avez dit les bytes avant et après diffèrent.
La raison pour laquelle ils diffèrent :
Au-dessous de est une ligne de msdn (codages d'arrangement :
http://msdn.microsoft.com/en-us/library/ms404377.aspx)« •Si votre application a le contenu qui n'est pas strictement ASCII et ne la code pas avec ASCIIEncoding, chaque caractère non-ASCII code-t-il comme point d'interrogation (" ? "). Si l'application décode alors ces données, l'information est perdue. »
Obvioursly les données de byte à partir du dossier de .exe est « pas ASCII » et l'information est perdue.
Ce qui est la solution pour ceci :
Au-dessous de est une ligne de msdn (classe de codage :
http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx)« Si votre application doit coder des données binaires arbitraires dans le texte, elle devrait employer un protocole tel que l'uuencode, qui est mis en application par des méthodes telles que Convert.ToBase64CharArray.
»
Évidemment les données de byte à partir du dossier de .exe sont des données binaires arbitraires et vous devriez considérer using le codage Base64 à la place suivant les indications du code ci-dessous :