0

此问题的答案中的参考源链接之后,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 的副本上可以看到此行为。

感谢您对此行为的任何解释,谢谢。

4

0 回答 0