トップ回答者
DirectoryInfo(dirName).FullName と dirName が一致しない

質問
-
VB2005でファイルリストを取得するプログラムを書いています。
Dim di As System.IO.DirectoryInfo
di = New System.IO.DirectoryInfo(dirName) ※1
di.GetFiles() ※2
di.GetDirectorys()
を繰り返してリストを取得しようとしたところ、
dirName = "C:\aaa\aaa\aaa\…\○○○○ "
というような、末尾に全角空白の入ったフォルダだと※1は成功するのに※2で
「DirectoryNotFoundException」が発生してパスが見つからないと言われてしまいます。
確認すると、※1の結果の時点で既に
di.FullName = "C:\aaa\aaa\aaa\…\○○○○"
di.Name = "○○○○"
で、末尾の空白が無くなってしまいます。
dirName の実体フォルダがあること、読み取りOKな状態であることは確認しました。
この現象の回避策はあるのでしょうか?
回答
すべての返信
-
ありがとうございます。
上記対応を施して、回避できるようになりました。
とりあえず単純に、
di = new System.IO.DirectoryInfo(dirName & "\")
にしてしまいました。
・・・
今回ファイルリストを取得しようとしている対象が友人から受け取った
デジカメ画像やらWord文書やらのデータCDなのですが、
ファイル名やフォルダ名に半角カナや特殊文字をバリバリ使っていて
今回もそういった空白文字のゴミ?が紛れたフォルダに対して
処理して判明しました。
他にも苦手な文字があるんでしょうかDirectoryInfo(というかFileSystemInfo)