Получить файл лицензии из папки в проекте C # - PullRequest
1 голос
/ 20 апреля 2010

У меня есть файл лицензии, к которому мне нужно получить доступ во время выполнения для создания pdf-файлов. После того, как я создал PDF-файл в памяти, мне нужно вызвать метод для этого PDF-файла, чтобы установить лицензию, например:

pdf.SetLicense("pathToLicenseFileHere");

Файл лицензии находится в том же проекте, что и файл .cs, который создает PDF, но находится в отдельной папке. Я не могу заставить эту простую вещь вести себя правильно, что делает меня немного грустным, поскольку это действительно не должно быть так сложно. :(

Я пытаюсь установить путь так:

string path = @"\Resources\File.lic";

Но это просто не работает для меня.

Edit:

Немного больше информации. Я должен отметить, что это веб-сервис, который возвращает pdf: s как byte []. Веб-служба создает файлы pdf: s, и в ходе этого процесса создания мне нужно установить файл лицензии, чтобы удалить любые водяные знаки из документа pdf. Сам pdf не сохраняется на диск, и ему нужно получить доступ к файлу лицензии только один раз при его создании.

Ответы [ 2 ]

5 голосов
/ 20 апреля 2010

Итак, файл находится в вашем проекте, и вам нужно, чтобы он находился в той же папке (структуре) в вашей папке, где находится ваше приложение.

Если я прав, есть два способа заставить это работать:

  1. Пометить файл как Содержимое , чтобы VS скопировал его в папку вашего файла .exe
  2. Добавьте его в качестве ресурса в приложение, если в-памяти памяти достаточно

Для решения 1 (в виде файла содержимого)

  • Отметить файл в обозревателе решений
  • Щелкните правой кнопкой мыши файл и выберитеproperties
  • Измените Build Action на Содержимое

Теперь файл находится в Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "license.txt").

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

Для решения 2 (в качестве внутреннего ресурса)

  • Добавить требуемый файл (если еще нет)в вашем проекте (Project - Add Existing Item)
  • Дважды щелкните в обозревателе решений на MyProject - Properties - Resources.resx
  • Нажмите небольшую стрелку вниз рядом с кнопкой Add Resourceи выберите Добавить существующий файл ...
  • Выберите файл, который вам снова нравится, в диалоговом окне

Теперь файл добавлен в качестве внутреннего ресурса в ваш проект.Для доступа к нему из кода просто используйте Properties.Resources.MyFileName.В зависимости от типа файла вы получите здесь строку (если это текстовый файл) или байтовый массив (если он содержит какой-либо текст).

Также, если это простой текстовый файл, выможно дважды щелкнуть по нему в обозревателе решений, отредактировать его, и после перестроения новое приложение будет содержать измененный текст (очень удобно, если вам нужны некоторые операторы SQL или XML-файлы в приложении).

1 голос
/ 20 апреля 2010

Пути должны быть относительно расположения исполняемого файла , а не расположения файлов .cs.

...