您的位置:首页 > 编程语言 > VB

如何从URL取得其在Internet Cache中的文件名(vb实现)

2006-06-13 15:16 543 查看
参考自 http://blog.csdn.net/cathyeagle/archive/2004/11/05/167900.aspx



'api声明
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Private Type INTERNET_CACHE_ENTRY_INFO
dwStructSize As Long
lpszSourceUrlName As Long
lpszLocalFileName As Long
CacheEntryType As Long
dwUseCount As Long
dwHitRate As Long
dwSizeLow As Long
dwSizeHigh As Long
LastModifiedTime As FILETIME
ExpireTime As FILETIME
LastAccessTime As FILETIME
LastSyncTime As FILETIME
lpHeaderInfo As Long
dwHeaderInfoSize As Long
lpszFileExtension As Long
'union {
' DWORD dwReserved;
' DWORD dwExemptDelta;
'}
dwReserved As Long
End Type

Private Declare Sub MoveMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef _
Destination As Any, ByRef Source As Any, ByVal Length As Long)
Private Declare Function SysAllocString Lib "oleaut32.dll" (ByVal pOlechar As Long) As String

Private Declare Sub GetUrlCacheEntryInfo Lib "wininet.dll" Alias _
"GetUrlCacheEntryInfoA" (ByVal lpszUrlName As String, ByRef lpCacheEntryInfo As _
Any, ByRef lpdwCacheEntryInfoBufferSize As Long)

'函数
Private Function getcachepath(lpszUrl$) As String

Dim dwEntrySize&
Dim lpCacheEntry As INTERNET_CACHE_ENTRY_INFO
Dim tarr() As Byte

Call GetUrlCacheEntryInfo(lpszUrl, ByVal 0, dwEntrySize)
If dwEntrySize > 0 Then
ReDim tarr(0 To dwEntrySize)

Call GetUrlCacheEntryInfo(lpszUrl, tarr(0), dwEntrySize)

MoveMemory lpCacheEntry, tarr(0), Len(lpCacheEntry)
getcachepath = SysAllocString(lpCacheEntry.lpszLocalFileName)

Else
'getcachepath =""
End If
End Function
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: