0

我需要使用 infopath 表单及其嵌入代码来搜索具有特定扩展名的文件的目录。此代码将用于根据扫描结果填充多行文本框。到目前为止,我已经将错误消息吐出到 catch 语句中的表单中。

        string directory = @"C:\Users\am21820\Desktop";

        try
        {
            string[] files = Directory.GetFiles(directory, "*.prm", SearchOption.TopDirectoryOnly);
            string result1 = ConvertStringArrayToString(files);
            MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:Test_Field", this.NamespaceManager).SetValue(result1);
        }

        catch (Exception f)
        {
            MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:Test_Field", this.NamespaceManager).SetValue(f.Message);
        }

除了上面的内容之外,我还尝试了以下内容。

        //FileIOPermission permission = new FileIOPermission(FileIOPermissionAccess.AllAccess, directory);
        //permission.AllLocalFiles = FileIOPermissionAccess.AllAccess;

        //try
        //{
        //    permission.Assert();
        //    permission.Demand();
        //}

        //catch (Exception f)
        //{
        //    MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:Test_Field", this.NamespaceManager).SetValue(f.Message);
        //}

我将 InfoPath 2013 与 VS 2012 一起使用,并且随着我向 InfoPath 2013 的过渡而更新了 VSTA。我收到以下错误。无论我尝试扫描哪个目录,都会出现此错误。

请求“System.Security.Permissions.FileIOPermission、mscorlib、Version=4.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089”类型的权限失败。

4

1 回答 1

0

按设计。您需要完整的信任表格才能访问文件。

请注意,对于 Forms Services,C# 代码在服务器上运行 - 您无法访问用户本地文件。

于 2015-11-24T19:44:48.517 回答