|
分類:[VB.NET/VB2005 以降]
環境:VisualStudio2012、.Net4.5、Windows7
次のような現象が起きて、どう対処したらいいかわからない状況です。
FolderBrowserDialogを使用してフォルダを選択後、配下のファイル一覧を取得し
それらのファイルを参照しようとしています。
If FolderBrowserDialog1.ShowDialog = Windows.Forms.Dialog.OK Then
Dim path As String = FolderBrowserDialog1.SelectedPath
Dim files As IEnumerable(Of String) = Directory.EnumerateFiles(path, "*.xml", SearchOption.AllDirectories)
For Each file In files
Dim xDoc As New XMLDocument
xDoc.Load(file)
Next
End If
この時filesには正常にパスが取得できていて、次のLoadでもExceptionは発生しません。
ところが、xDocをウォッチで見ると"式を評価できません"と表示され、以降のDOM操作も機能しませんでした。
何故こうなるのかさっぱりだったので、以下のようにあがいてみました。
1.上記のIf文の後に全く関係ないコードを書いてみた
具体的にはDataTableに適当に値を詰めるコード
→DataTableの変数が同じく"式を評価できません"となって参照できない
2.FrameWorkのバージョンを変えてみた
→4.0、4.5はNG、3.5まで落としたら正常に動作した(EnumerateFilesは別のメソッドに変えた)
3.別の端末で同じコードを試してみた
→Win8、VS2012、.NET4.5 ×
→Vista、VS2005、.NET2.0 ○
現象の羅列で申し訳ありませんが助言のほうよろしくお願いします。
|