在delphi XE7中使用UrlCreateFromPath

路易斯·阿尔维斯

我在stackoverflow中找到了下一个功能代码。当我尝试将诸如“ C:\ teste.zip”之类的文件转换为URL格式时,结果字符串包含额外的尾随#0字符。我的结果是''file:/// C:/teste.zip#0'我在做什么错?预先感谢,路易斯

function FilePathToURL(const FilePath: string): string;
var
  Buffer: string;
  BufferSize: DWORD;
begin
  Result := '';
  BufferSize := Length('file:///' + FilePath + #0);
  SetLength(Buffer, BufferSize);

  if UrlCreateFromPath(PChar(FilePath), PChar(Buffer), @BufferSize, 0) = S_OK then
    Result := Buffer;
end;
达莉娅(Dalija Prasnikar)

您正在BufferSize以错误的方式计算期望值根据MS文档,最大预期长度为INTERNET_MAX_URL_LENGTH

将Path转换为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;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Delphi XE7中使用NetEncoding对字符串进行Base64解码?

来自分类Dev

在Delphi XE7中制成的DLL返回在Delphi 2007中使用的字符串数组

来自分类Dev

在Delphi XE7 Android中的Messagedlg

来自分类Dev

使用参数Delphi XE7 Firedac

来自分类Dev

使用Delphi XE7并行库

来自分类Dev

使用多设备应用程序在Delphi xe7中的StatusBar中显示数据

来自分类Dev

无法在Delphi XE7中删除控件

来自分类Dev

如何在Delphi XE7中关闭自动引用?

来自分类Dev

Delphi XE7中的默认库路径无效

来自分类Dev

clientdataset中的Delphi XE7 + Rest / Json + Facebook组

来自分类Dev

什么是Delphi XE7中的“ HotfixLevel 2”?

来自分类Dev

在Delphi XE2和Delphi XE7中LongMonthNames的用法

来自分类Dev

旋转图像Delphi XE7

来自分类Dev

Delphi Console XE7透明屏幕

来自分类Dev

文字提示Delphi XE7

来自分类Dev

Delphi XE7智能指针

来自分类Dev

Delphi XE7 Android Indy IRC

来自分类Dev

Delphi XE7 XML文档

来自分类Dev

如何在Delphi XE7中设置“版本信息”?[Delphi设计问题]

来自分类Dev

在Delphi XE中使用VaComm

来自分类Dev

Excel 2010自动化常数在Delphi XE7中不起作用

来自分类Dev

Delphi XE7画布在一个线程中拉伸

来自分类Dev

在delphi xe7中自定义FMX.InAppPurchase.Android单元

来自分类Dev

如何在Delphi XE7上的其他过程中执行TTakePhotoFromCameraAction?

来自分类Dev

在Delphi XE7中,如何在变体点之后获取功能和属性建议?

来自分类Dev

在Delphi XE7中将节点添加到IXMLNodeCollection

来自分类Dev

Delphi XE7:如何使用System.JSON更改JSON值(相对于SuperObject)

来自分类Dev

Reg。使用Delphi XE7的iOs移动应用程序开发硬件要求

来自分类Dev

如何使用Delphi XE7在api级别8(Android 2.2)上编译Android App

Related 相关文章

热门标签

归档