LoadFromMappedFile

文件管理、效能、檔案輸入

描述

透過有界限的唯讀映射檢視載入並選取本機 PDF,讓大型延遲物件與串流讀取能重用作業系統檔案頁面,而無須將完整來源保留在記憶體中

語法

Delphi

Function TPDFlib.LoadFromMappedFile(Const FileName, Password: WideString;
  WindowSize: Int64= 0; Options: Integer= 0): Integer;

參數

FileName本機 PDF 的路徑
Password開啟 PDF 用的密碼;未加密文件為空字串
WindowSize要求的映射檢視大小(位元組);零表示選用 64 MiB,低於作業系統配置粒度的值會提升到該粒度,超過 1 GiB 的值會被限制
Options零允許回退到唯讀檔案串流;PDF_MAPPED_FILE_REQUIRE_MAPPING 在沒有作用中的映射檢視時會失敗

傳回值

0引數無效、無法開啟檔案、無法提供所需的映射,或無法載入 PDF;請檢查 LastErrorCode
1文件已載入並選取

備註

Windows 版本保留一個唯讀視圖,並視需求在配置粒度邊界重新映射;其他平台與映射失敗時,除非必須映射,否則以一般唯讀檔案串流履行相同的絕對讀取契約

預設 64 MiB 視圖使位址空間用量與來源大小脫鉤,適合對大型本機檔案的稀疏散讀;較小的視圖可減少常駐位址空間,代價是更多重映射

絕對物件切片讀取直接從目前視圖複製到剖析器自有儲存區,不更動位置型串流游標;這不是持久的零複製指標 API,因為重映射會使視圖位址失效

來源在載入的文件被移除前保持開啟,儲存或延遲萃取可以繼續讀取

若已指派 OnPassword,每次被拒的密碼重試都會取得全新的映射串流與剖析器狀態

請用 GetMappedFileInfo 確認映射是否作用中,並檢視目前的視圖與讀取統計