在此问题的答案中的参考源链接之后,System.IO.FileStream.Init 仅在错误定位的“:”字符的情况下使用 Argument_PathFormatNotSupported 字符串引发 NotSupportedException 一次。
但是,在我的代码中,即使不存在此条件,也会引发“不支持给定路径的格式”错误,例如
PHS shape = new PHS();
try
{
string filePath = Path.GetFullPath(Path.GetDirectoryName(Application.ExecutablePath) + "\\..\\..\\Maps\\ne_50m_urban_areas.shp");
if (filePath.IndexOf(':', 2) != -1)
MessageBox.Show("filePath bad");
else
MessageBox.Show("filePath okay");
shape.LoadFile(Populated, filePath);
}
catch (NotSupportedException ee)
{
MessageBox.Show(ee.StackTrace);
}
运行此代码首先给我“filePath OK”,然后给我一个 NotSupportedException 与以下堆栈:
LoadFile 方法通过 System.IO.File.OpenRead() 调用 FileStream。奇怪的是,仅当 filePath 具有一定长度时才会引发此错误 - 如果 filePath 很短,则不会引发错误。在 Win10、Win8.1 和 Win2003 的副本上可以看到此行为。
感谢您对此行为的任何解释,谢谢。