共用方式為


RetrieveUrlCacheEntryFileA 函式 (wininet.h)

鎖定與指定 URL 相關聯的快取項目檔案。

語法

BOOL RetrieveUrlCacheEntryFileA(
  [in]      LPCSTR                       lpszUrlName,
  [out]     LPINTERNET_CACHE_ENTRY_INFOA lpCacheEntryInfo,
  [in, out] LPDWORD                      lpcbCacheEntryInfo,
  [in]      DWORD                        dwReserved
);

參數

[in] lpszUrlName

字串的指標,其中包含與快取專案相關聯的資源 URL。 這必須是唯一的名稱。 名稱字串不應包含任何逸出字元。

[out] lpCacheEntryInfo

快取專案信息緩衝區的指標。 如果緩衝區不足,此函式會傳回ERROR_INSUFFICIENT_BUFFER,並將 lpdwCacheEntryInfoBufferSize 設為所需的位元組數目。

[in, out] lpcbCacheEntryInfo

不帶正負號之長整數變數的指標,以位元組為單位指定 lpCacheEntryInfo 緩衝區的大小。 當函式傳回時,變數會包含實際緩衝區的大小,以位元組為單位,或是擷取快取專案檔案所需的位元組數目。 呼叫端應該檢查此參數中的傳回值。 如果傳回大小小於或等於傳入的大小,則會傳回所有相關數據。

[in] dwReserved

此參數是保留的,而且必須是 0。

傳回值

如果成功,則傳回 true true,否則會 傳回 false。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。 可能的錯誤值包括:

傳回碼 描述
ERROR_FILE_NOT_FOUND
在快取記憶體中找不到來源名稱指定的快取專案。
ERROR_INSUFFICIENT_BUFFER
lpdwCacheEntryInfo 所指定之 lpCacheEntryInfoInfoSize 緩衝區的大小不足以包含所有資訊。 lpdwCacheEntryInfoBufferSize 中傳回的值 表示取得所有資訊所需的緩衝區大小。

言論

RetrieveUrlCacheEntryFile 不會進行任何 URL 剖析,因此即使快取資源已快取,也不會在快取中找到包含錨點的 URL。 例如,如果傳遞 URL http://adatum.com/example.htm#sample,即使快取中有 http://adatum.com/example.htm,函式也會傳回ERROR_FILE_NOT_FOUND。

擷取檔案時,會鎖定呼叫端的檔案;呼叫端應該在呼叫端完成檔案之後解除鎖定檔案。 快取管理員會在特定間隔後自動解除鎖定檔案。 當檔案鎖定時,快取管理員將不會從快取中移除檔案。 請務必注意,根據快取的內部實作,此函式可能會或可能無法有效率地執行。 例如,如果 URL 資料儲存在包含其他 URL 資料的封裝檔案中,快取會將數據複本複製到快取所維護之暫存目錄中的檔案。 快取最終會刪除複本。 建議只有在需要檔名才能啟動應用程式的情況下,才使用此函式。 RetrieveUrlCacheEntryStream 和相關聯的數據流函式應該在大部分情況下使用。

如同 WinINet API 的其他所有層面,無法從 DllMain 或全域物件的建構函式和解構函式安全地呼叫此函式。

注意 WinINet 不支援伺服器實作。 此外,不應該從服務使用。 針對伺服器實作或服務,請使用 Microsoft Windows HTTP 服務 (WinHTTP)
 

注意

wininet.h 標頭會根據 UNICODE 預處理器常數的定義,將 RetrieveUrlCacheEntryFile 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
標頭 wininet.h
連結庫 Wininet.lib
DLL Wininet.dll

另請參閱

快取

WinINet 函式