Как проверить, существует ли встроенный ресурс?

В Delphi я создаю HTTP-приложение или, скорее, веб-сервер. По сути, это целый веб-сайт, встроенный в один EXE-файл. Файлы, которые я встраиваю, включают HTML, JS, CSS, SWF, PNG, XML и т. д. Имена ресурсов такие же, как исходное имя файла, с . заменено на _. В итоге внутри EXE будет заложено где-то 40-60 файлов.

Проблема в том, что я не хочу писать код, оборачивающий каждый отдельный файл. Прямо сейчас я объявляю константу для каждого ресурса и использую эту константу при получении ресурса с помощью TResourceStream.HTTP-запрос запрашивает любой конкретный файл, и, поскольку у меня будет куча файлов, мне не нужен отдельный способ обработки каждого файла. Кроме того, в будущем, когда я добавлю новый файл для встраивания, все, что мне нужно будет сделать, это добавить его в мой сценарий ресурсов (.rc). Поэтому я решил изменить свой механизм для автоматического преобразования запрошенного имени файла в имя ресурса. Например, /Home.HTMLпреобразуется в HOME_HTML, что должно быть именем встроенного ресурса. Мне нужно проверить, существует ли такой ресурс перед его загрузкой.

Я мог бы попытатьсязагрузить его и перехватить любое исключение, но это приведет к ошибкам при отладке, если ресурс не существует. Как мне выполнить такую ​​проверку без использования try..except?

9
задан Jerry Dodge 16 March 2012 в 21:54
поделиться