【问题标题】:Open File In Silverlight 4 File operation not permitted在 Silverlight 4 中打开文件 不允许文件操作
【发布时间】:2011-05-16 08:37:19
【问题描述】:

我有一个带有选择文件打开对话框的 Silverlight Web 应用程序 (4.0),但是当用户选择一个文件时出现此错误:“不允许文件操作访问路径 '' 被拒绝” 当我尝试调试它时,我得到了这个安全异常“对话框必须是用户启动的”。 有没有解决的办法?有没有人尝试在 Silverlight 中这样做?

这是我到目前为止还没有工作的代码:

OpenFileDialog dlg = new OpenFileDialog
{
    Multiselect = false,
    Filter = "All files|*.*"
};
bool? userClickedOK = dlg.ShowDialog();

if (userClickedOK == true)
{
    textBox1.Text =  dlg.File.FullName;
}

【问题讨论】:

标签: c# silverlight silverlight-4.0


【解决方案1】:

由于与安全相关的限制,您无法直接在 Silverlight 中打开文件对话框。您只能从事件处理程序内部打开对话框,例如鼠标单击。

【讨论】:

    【解决方案2】:
    1. 在 silverlight 4 中,您无法访问 FullName 属性,这是导致异常的原因:“不允许文件操作访问路径被拒绝” 我尽力而为,但如果不使您的应用程序OOB,则无法找到获取所选文件的完整文件路径的方法。

    2. 在调试 silverlight 项目时,如果您在 dlg.ShowDialog() 之前的任何位置放置断点,如果您的代码会引发异常:“Dialogs必须由用户发起" 避免此异常的简单方法是将断点放在 ShowDialog() 行之后。

    【讨论】:

      【解决方案3】:

      据我所知,如果您没有提升的权限,则不允许您访问用户文件。

      【讨论】:

        【解决方案4】:

        您无法获取文件的全名。在所有情况下,您为什么需要它?没有理由知道用户将文件存储在哪里。

        如果要读取文件,请改用上传文件的Stream 属性。

        【讨论】:

          【解决方案5】:

          在阅读了很多关于您无法访问的问题后,我遇到了同样的问题

           dlg.File.FullName 
          相反,您可以使用它
           dlg.File.Name 

          通过这样做,您的异常将被删除

          【讨论】:

            【解决方案6】:

            如果您尝试从 FileInfo 访问 CreationTime,也会发生此错误。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2021-01-18
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-08-05
              • 1970-01-01
              相关资源
              最近更新 更多