C#infopath directory.getfiles访问错误

时间:2015-11-24 19:36:22

标签: c# infopath-forms-services

我需要使用信息表格及其嵌入代码在目录中搜索具有特定扩展名的文件。此代码将用于根据扫描结果填充多行文本框。截至目前,我已将错误消息吐出到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.Security.Permissions.FileIOPermission,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'失败。

1 个答案:

答案 0 :(得分:0)

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

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