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 確認映射是否作用中,並檢視目前的視圖與讀取統計