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);
        //}

VS 2012 と共に InfoPath 2013 を使用していますが、InfoPath 2013 への移行に伴い VSTA が更新されました。次のエラーが表示されます。このエラーは、どのディレクトリをスキャンしようとしても発生します。

タイプ 'System.Security.Permissions.FileIOPermission、mscorlib、Version=4.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089' のアクセス許可の要求に失敗しました。

4

1 に答える 1