je suis en train de lire un fichier binaire (par exemple un exécutable) dans une chaîne, puis l'écrire retourfichier binaire à chaîne
FileStream fs = new FileStream("C:\\tvin.exe", FileMode.Open);
BinaryReader br = new BinaryReader(fs);
byte[] bin = br.ReadBytes(Convert.ToInt32(fs.Length));
System.Text.Encoding enc = System.Text.Encoding.ASCII;
string myString = enc.GetString(bin);
fs.Close();
br.Close();
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
byte[] rebin = encoding.GetBytes(myString);
FileStream fs2 = new FileStream("C:\\tvout.exe", FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs2);
bw.Write(rebin);
fs2.Close();
bw.Close();
cela ne fonctionne pas (le résultat a exactement la même taille octets mais ne peut pas exécuter)
si je fais bw.Write (bin) le résultat est correct, mais je dois enregistrer une chaîne
Faire une comparaison hexadécimale, les octets sont-ils dans l'ordre inverse? (peu endian à big endian) – Amirshk
Pourquoi avez-vous besoin de le stocker comme une chaîne? –