我在使用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;
}
这返回错误。我正在做的字符串处理似乎正在替换重音字符。VS2012 中的文本可视化器显示了这一点(directoryManager 只是一个环绕System.IO.Directory
):
显示的警告消息显示如下:
所以似乎重音字符没有被识别。搜索这个问题确实出现了,但主要是关于删除或替换重音字符。我目前正在使用“正常”字符串处理。我尝试使用FileInfo
,但路径似乎还是被破坏了。
所以我的第一个问题是如何将路径存储到字符串中以便通过Directory.Exists
测试?
这引发了路径名称中非拉丁字符的更广泛问题。我在世界各地都有用户,所以我可以看到阿拉伯语。俄语、汉语等在路径中。我该如何处理所有这些?