Directory.Exists()
アクセント付き文字を含む文字列での使用に問題があります。
これはディレクトリ パスです: D:\ést_test\scenery
. 私が解析しているファイル内の単純な文字列として入っています:
[Area.121]
Title=ést_test
local=D:\AITests\ést_test
Layer=121
Active=FALSE
Required=FALSE
私のコードは、ローカル値を取得して追加\scenery
しています。これが存在すること(存在すること)をテストする必要があり、単に使用しています:
if (!Directory.Exists(area.Path))
{
// some handling code
area.AreaIsValid = false;
}
これは false を返します。私が行っている文字列処理は、アクセント付きの文字を置き換えているようです。VS2012 のテキスト ビジュアライザーはこれを示しています (directoryManager は単なるラップ アラウンドですSystem.IO.Directory
)。
表示される警告メッセージは次のとおりです。
そのため、なまりのある文字が認識されていないようです。この問題を検索すると出てきますが、ほとんどはアクセント付き文字の削除または置換に関するものです。現在、「通常の」文字列処理を使用しています。使用してみFileInfo
ましたが、とにかくパスが壊れているようです。
私の最初の質問は、パスを文字列に格納してDirectory.Exists
テストに合格するにはどうすればよいですか?
これにより、パス名にラテン文字以外の文字が含まれているという、より広範な問題が発生します。私はアラビア語を見ることができるので、世界中にユーザーがいます。ロシア語、中国語などのパス。これらすべてをどのように処理できますか?