浏览器内应用程序。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