Можно ли включить файл внутри класса - PullRequest
0 голосов
/ 23 июня 2011

Есть ли способ включить в класс содержимое файла, не только текстовые файлы , но также двоичные файлы , например Char Array, или String, или что-то еще на Землеэто может быть, поэтому в Конструкторе мой класс должен записать это содержимое в Файл в указанном файле.

Этот файл может быть .exe, .pdf,.xls, .xml и т. д. *

Ответы [ 4 ]

3 голосов
/ 23 июня 2011

Я не совсем уверен, что вы подразумеваете под включением «Контент файла внутри класса», но из того, что я предполагаю, вы подразумеваете (хранение целых файлов внутри класса?), Вы можете захотеть взглянуть на кодировку Base64, которая схема кодирования, которая позволит вам преобразовывать любые двоичные данные в строку ASCII.

Для хранения ваших двоичных данных вы можете преобразовать любую byte[] в строку в кодировке Base64, используя Convert.ToBase64String, и сохранить ее в своем классе. Чтобы вернуть его, используйте Convert.FromBase64String, чтобы получить byte[].

1 голос
/ 23 июня 2011

Как и cbley, я не совсем уверен, что вы имеете в виду, но вы могли бы иметь в виду встраивание файла в вашу сборку?

  • Зайдите в Visual Studio, нажмите «добавить существующий элемент» и выберите файл.
  • Изменить действие по сборке для файла на «Встроенный ресурс»

Когда вы запускаете свое приложение, вы можете извлечь двоичный файл в файловую систему следующим образом.

//make sure MyNameSpace.MyFile.xls is the fully qualified name in your assembly to the file
using (Stream stream = Assembly.GetManifestResourceStream("MyNameSpace.Myfile.xls"))
{
   byte[] buf = new byte[stream.Length];
   stream.Read(buf, 0, stream.Length);
   File.WriteAllBytes(@"C:\MyFile.xls", buf);
}
0 голосов
/ 23 июня 2011

Это было бы возможно, просто сохраните содержимое файла в виде байтового массива. Напишите конвертер, который сохраняет байты указанных файлов в текстовый файл в нужном вам формате (поэтому он представляет собой массив). Затем вырежьте и вставьте это в ваш исходный код.

0 голосов
/ 23 июня 2011

Взгляните на File.ReadAllBytes() метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...