Рейтинг:
14
OriginalGriff
Не читать его как текст: прочитать его непосредственно байт:
byte[] data = File.ReadAllBytes(pathToFile);
File.WriteAllBytes(pathToExe, data);
Данные в ASCII могут быть всего 7 бит, и разные системы будут интерпретировать некоторые из них по-разному (например, \n и \r "конденсируются" при их чтении), поэтому вы можете потерять важную информацию, когда будете рассматривать ее как текст.
WOLF 2018
я попробую сделать это сейчас
WOLF 2018
я не могу потому что файл в котором находятся байты это текст и он не позволяет мне читать его как байты
OriginalGriff
Тот... гм ... оказывается, это не так.
Файлы-это файлы: все файлы представляют собой последовательность байтов и могут быть прочитаны как таковые, все остальное-это "интерпретация" байтов в определенном формате, поэтому чтение байтовых данных в виде текста - плохая идея-интерпретация приводит к изменению данных. Система не будет препятствовать вам вообще читать файл в байтах (при условии, что у вас есть соответствующие разрешения на чтение файла и папки вообще).
Используйте шестнадцатеричный редактор и посмотрите на "текстовый" файл и посмотрите, что именно он содержит.
OriginalGriff
И это не текст - это двоичные данные, байтовые данные. Прочтите это как текст, и вы потеряете большую часть информации - и он вообще не будет работать как EXE-файл.
Кстати: это не шестнадцатеричный редактор: это то, что дает вам шестнадцатеричный редактор:
https://i.stack.imgur.com/u9007.png
Видите, насколько, гораздо более читабельно это?
Рейтинг:
1
Patrice T
Цитата:
я использую C# exe и пытаюсь превратить его в строку, которую я могу использовать в других программах, которые я делаю. файл называется bit.exe ... у них не так уж много информации, что ли
Если я правильно понимаю, вы хотите встроить случайный exe-файл в свою программу и, вероятно, молча запустить его как свой собственный.
Даже если это законно и справедливо, это будет трудная задача, и вам понадобятся глубокие знания об ОС, потому что файл на жестком диске-это не то, что запускается в памяти, ОС вносит в него изменения, и вам придется внести эти изменения, чтобы запустить его.
Цитата:
byte[] array = Encoding.ASCII.GetBytes(bit);
В любом случае, считывайте байты, записывайте байты, никогда не делайте преобразования.
WOLF 2018
да, но я не хочу, чтобы он работал бесшумно. Я просто подумал, что если я могу получить байты в строку, то я просматриваю байты и помещаю их в другую программу, чтобы она могла использовать байты для создания файла снова. Я знаю, что это звучит как ум F***, но я думаю, что это можно сделать, или вы можете компилировать код C# из файла, чтобы сделать exe-файл без комплиера. (извините за мою орфографию.)
Patrice T
Вы пытаетесь сделать самораспаковывающийся архив ?
WOLF 2018
да. Я хочу, чтобы моя программа проверяла, есть ли файл esists, а если нет, то я хочу, чтобы он сделал их так, чтобы мне не нужно было их скачивать.
Patrice T
Это очень важно сказать.
Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.
WOLF 2018
хорошо, но как бы я это сделал?