Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Ошибка в функции FilePathToURL в Delphi XE7

Delphi , Интернет и Сети , URL

Заголовок:

Вопрос: При использовании функции FilePathToURL для преобразования пути файла в формат URL, результат содержит лишний символ #0 в конце строки. Например, для файла 'C:\teste.zip' результат будет 'file:///C:/teste.zip#0'. Что я делаю не так?

Ответ: Проблема заключается в неверном расчете размера буфера. Согласно документации Microsoft, максимальный ожидаемый размер равен INTERNET_MAX_URL_LENGTH.

Вот правильный код для преобразования пути в URL:

const
  INTERNET_MAX_URL_LENGTH = 2048 + 32 + 3;

function FilePathToURL(const FilePath: string): string;
var
  Buffer: array [0.. INTERNET_MAX_URL_LENGTH - 1] of Char;
  BufferSize: DWORD;
begin
  Result := '';
  BufferSize := INTERNET_MAX_URL_LENGTH;
  if UrlCreateFromPath(PChar(FilePath), @Buffer, @BufferSize, 0) = S_OK then
    Result := Buffer;
end;

Примечание: Спасибо Rob за исправление ошибки в размере буфера.

Создано по материалам из источника по ссылке.

Пользователь столкнулся с ошибкой в функции FilePathToURL в Delphi XE7, из-за которой результат содержит лишний символ #0 в конце строки, и просит помощи в устранении проблемы.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: URL ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-28 06:18:42/0.0026578903198242/0