我需要获取路径...但它不会返回特殊文件夹(如计算机、回收站、网络等)的位置。
您遇到的直接问题是,如果窗口的位置不是物理目录,LocationURL
则会返回。""
对于“我的电脑”、“回收站”和“网络”,这并不奇怪——它们是虚拟文件夹;没有可以指向它们的路径或 URL,因为它们不是磁盘上的位置。
但是,如果您导航到“文档”(它确实对应于磁盘上的一个目录,即使它也是一个特殊文件夹),LocationURL
仍然会返回""
. 在这里,它可以为您提供一条路径,但它选择不这样做。这似乎有些刻薄。
我发现一些文档说ShellWindows返回InternetExplorer
objects。我找不到ShellBrowserWindow
您正在使用的类的任何文档,但InternetExplorer
似乎相似或相同,因此它有一些文档可供您参考,而不必只查看 Intellisense 中的属性名称。
唯一看起来有用的其他属性是LocationName
,即使对于虚拟或特殊文件夹,它也会返回一些东西。但是,它会返回一个类似“Documents”或“Libraries”的字符串,这不是您可以真正以编程方式使用的字符串(它在不同的语言环境、不同的 Windows 版本等中会有所不同)
如果您只需要在列表中显示一些内容,LocationName
那可能就足够了。如果您确实需要该路径,那么您可能不走运(尽管无论如何您都会遇到,因为如前所述,计算机、回收站和网络之类的东西没有路径)。