瀏覽器內應用程序。OpenRead工作時Silverlight中的打開文件不起作用
我有一個打開打開文件對話框的標準代碼,然後使用dlg.File.OpenRead()
讀取文件。現在問題來了,如果該文件是用Excel打開的。開幕失敗,因爲在內部它下面:
public FileStream OpenRead()
{
new FileIOPermission(FileIOPermissionAccess.Read, this.FullPath).Assert();
return new FileStream(this.FullPath, FileMode.Open, FileAccess.Read, FileShare.Read, 4096, false);
}
要訪問在Excel中打開,你必須使用FileShare.ReadWrite
文件。好吧,有Open
方法,所以我寫:
dlg.File.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite)
,它給錯誤:「文件操作不允許訪問路徑‘XYZ’被拒絕」。我查了一下Open
內部做:
public FileStream Open(FileMode mode, FileAccess access, FileShare share)
{
return new FileStream(this.FullPath, mode, access, share);
}
幾乎相同,除了請求FileIOPermission
,這又是內部的,你不能在代碼中使用它。
所以問題是,如何使Open
工作?或者如何用ReadWrite
共享打開文件?
這是一個OOB應用程序或瀏覽器內? – 2011-12-29 16:07:05
@Christopher Estep瀏覽器中 – Andrey 2011-12-29 16:08:36