簡體   English   中英

WPF WebBrowser控件以只讀方式加載本地文件

[英]WPF WebBrowser Control loading local file readonly

我想使用WebBrowser控件來顯示幾個文件。 但是有必要重命名,然后在WebBrowser控件顯示文件后將其刪除。 問題在於,文件被鎖定,直到WebBrowser設置為顯示另一個文件或不顯示任何文件為止。

有沒有一種方法可以強制WebBrowser緩存文件並在加載后立即釋放它?


現在,我從文件創建了一個內存流,並將其傳遞給WebBrowser控件。

using (var fileStream = new FileStream(source, FileMode.Open, FileAccess.Read, FileShare.Read))
{
  fileMemoryStream = new MemoryStream();
  fileStream.CopyTo(fileMemoryStream);
}

fileMemoryStream.Position = 0;
webBrowser.NavigateToStream(fileMemoryStream);

但是現在我看不到pdf文檔,但我將pdf視為ASCII代碼。

“%PDF-1.2%ÈÇÐÄF4 0 obj << / Type / Outlines / Count 0 >> endobj 5 0 obj .......”

是否可以將文件中的程序類型附加到流中以顯示PDF?

WPF瀏覽器的運行方式很不幸,很可能無法顯示流中的PDF,除非您進行一些黑客攻擊,例如在應用程序內部運行自己的小型http服務器並使用該服務器流pdf。 但就您而言,將pdf復制到temp文件夾並從那里打開要容易得多:

File.Copy("path_to_pdf", Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".pdf");

並從該位置顯示它。 當然,完成操作后不要忘記清理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM