我在stackoverflow中找到下一個函數代碼。 當我嘗試將諸如'C:\ teste.zip'之類的文件轉換爲URL格式時,結果字符串包含額外的尾部#0字符。我的結果是''file:/// C:/teste.zip#0' 我做錯了什麼? 在此先感謝路易斯在delphi中使用UrlCreateFromPath XE7
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;
您需要再次做''SetLength(緩衝區,緩衝區大小)。 –
對不起,這是['我的錯'](http://stackoverflow.com/a/8497976/960757)。它寫得非常糟糕。我還不確定引用是否包含拼寫錯誤,並且希望提及'pszUrl'而不是'pszPath'(最多應該是'MAX_PATH'長)的最大長度'INTERNET_MAX_URL_LENGTH'。 – TLama
謝謝,它解決了我的問題。我只是再次添加SetLength(Buffer,BufferSize)。 –