特定の拡張子を持つファイルのディレクトリを検索するには、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' のアクセス許可の要求に失敗しました。