Я создаю программу обновления на C # для моей игры для ПК, которая в основном отправляет Http-сообщение на сервер, чтобы узнать, какая последняя версия игры. Если есть более новая версия, она загружает необходимые файлы. Для загрузки файлов я использовал метод WebClient.DownloadFile (). На форумах есть несколько сообщений, в которых подробно описываются проблемы, связанные с этим методом, но ни одна из них не похожа на мою.
Я использую такой метод:
WebClient webClient = new WebClient();<br/>
webClient.DownloadFile(sOriginFile, sDestinationFile);
Я сразу столкнулся с проблемой при загрузке любых файлов со следующими расширениями:
.xnb
.xgs
.xsb
.xwb
Я получил бы исключение, сообщающее: «Удаленный сервер возвратил ошибку: (404) Не найдено».
Итак, в качестве эксперимента я добавил 3, более распространенных файла, в один и тот же каталог.
.txt
.doc
.jpg
и метод DownloadFile () отлично работал для этих файлов. Кто-нибудь знает, почему этот метод не работает для первых 4 типов файлов, но отлично работает с последними 3?
Также я попробовал WebClient.DownloadData () и HttpWebRequest.GetResponse () (после настройки запроса), я даже пытался отменить имя расширения на сервере (.bnx), но, несмотря ни на что, я получал бы то же самое точное исключение.
Если кто-то действительно хочет заняться этим, вот ссылки на 2 примера файлов (я пытался опубликовать все 7 примеров файлов, но переполнение стека позволяет мне размещать только 2 ссылки):
http://www.facepuncher.com/Versions/CastleAbra/1.1/Sample.txt
http://www.facepuncher.com/Versions/CastleAbra/1.1/UiCursor.xnb