Ссылка на текстовый файл Visual Studio C # - PullRequest
3 голосов
/ 23 февраля 2012

У меня проблемы с попыткой жесткого кодирования текстового документа в мое приложение на C #. В основном у меня есть веб-страница HTML, которую я хочу заполнить в текстовое поле. Я могу легко сделать это с помощью потокового считывателя или потратить навсегда на запись в строку При взгляде на другой элемент, который я могу добавить к своему решению, был текстовый файл.

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

Я хочу, чтобы это было закодировано в exe как документ по умолчанию. Мне не нужен внешний файл, чтобы его нельзя было редактировать и чтобы программа стала легко переносимой.

Любые предложения о том, как встроить этот файл и получить к нему доступ, как класс или что-то еще?

Ответы [ 3 ]

7 голосов
/ 23 февраля 2012

Щелкните правой кнопкой мыши по вашему проекту и выберите свойства. Вы получаете обычный экран с множеством вкладок слева. Нажмите на тот, который говорит «Ресурсы». Вы можете добавлять строки и другие вещи, но вы также можете добавлять текстовые файлы.

Измените раскрывающийся список вверху на файлы, затем нажмите «Добавить ресурс». Перейдите к текстовому файлу, назовите его как угодно. Это добавит файл в вашу сборку. Не будьте слишком взволнованы, потому что это может быть декомпилировано, поэтому не храните никаких секретных сообщений в ближайшее время.

Вы можете сделать это на сайте .net, на сайте mvc, в консольном приложении и т. Д. Приведенный ниже код представляет собой стиль консольного приложения, чтобы упростить его. Конечно, это просто текстовый файл, но он дает вам основы использования ресурсов. Вы могли бы расширить это на другие типы файлов, включая такие вещи как 3-я часть, такие как шаблоны отчетов, файлы форматирования, xml и другие вещи, которые в противном случае могут быть неуклюжими, чтобы всегда пытаться убедиться, что они включены в вашу конфигурацию при продвижении вашего кода. Недостатком является перекомпиляция для внесения изменений.

using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var output = Properties.Resources.helloword;
            Console.WriteLine(output);
            Console.ReadLine(); //just so you can see it
        }
    }
}
6 голосов
/ 23 февраля 2012

Концепция, которую вы описываете, называется встраивание ресурсов .

Вы можете встраивать все виды файлов в качестве ресурсов;значки, изображения, xml и даже простые текстовые файлы и ссылки на них из кода, например, вот так:

internal string GetFromResources(string resourceName)
{
    Assembly assem = this.GetType().Assembly;
    using (Stream stream = assem.GetManifestResourceStream(resourceName))
    {
        using (var reader = new StreamReader(stream))
        {
            return reader.ReadToEnd();
        }
    }
}

Когда вы знаете, что ищете, можно найти тонны документации: http://msdn.microsoft.com/en-us/library/0c6xyb66.aspx

2 голосов
/ 23 февраля 2012

Я делаю что-то подобное.

Добавьте .html в свой проект, установите Действие сборки в свойствах на Встроенный ресурс

Затем вы можете получить поток для этого элементачерез

Assembly.GetExecutingAssembly().GetManifestResourceStream("your.namespace.yourFile.html");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...