C# infopath directory.getfiles 访问错误

C# infopath directory.getfiles access error

我需要使用 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,VSTA 在我过渡到 InfoPath 2013 的过程中进行了更新。我收到以下错误。无论我尝试扫描哪个目录,都会出现此错误。

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

设计使然。您需要完整的信任表单才能访问文件。

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