мне нужно получить путь ... Но он не возвращает расположение специальных папок, таких как компьютер, корзины, сети и т.д.
Непосредственная проблема, которую вы бежите в это что LocationURL
возвращает ""
, если местоположение окна не является физическим каталогом. Для «Мой компьютер», «Корзина» и «Сеть» это не удивительно - это виртуальные папки; там не путь или URL-адрес, который может указывать на них, потому что они не являются местоположениями на диске.
Однако, если вы перейдете в «Documents» (который делает соответствует каталогу на диске, хотя это также специальная папка), LocationURL
еще возвращает ""
. Вот он может дать вам путь, но он не хочет этого делать. Это кажется несколько злым.
Я нашел документацию, в которой говорится, что ShellWindows возвращает InternetExplorer
objects. Я не мог найти никаких документов для класса ShellBrowserWindow
, который вы используете, но InternetExplorer
кажется похожим или идентичным, поэтому он имеет некоторые documentation, на которые вы можете ссылаться, вместо того, чтобы просто искать имена свойств в Intellisense.
Единственное другое свойство, которое выглядит полезным, это LocationName
, что действительно возвращает что-то даже для виртуальных или специальных папок. Тем не менее, он возвращает строку, такую как «Документы» или «Библиотеки», которая не является чем-то, что вы действительно могли бы использовать программным способом (она была бы другой в разных локалях, в разных версиях Windows и т. Д.).
все, что вам нужно, это что-то, что можно показать в списке, вероятно, будет достаточно LocationName
.Если вам действительно нужен путь, вам, вероятно, не повезло (хотя вы все равно, потому что, как отмечено, такие вещи, как «Компьютер», «Корзина» и «Сеть», не имеют путей).
Одна из проблем, которые вы можете столкнуться, состоит в том, что не все окна исследователя связаны с пути. Например, в Windows 7 есть «Библиотеки», такие как «Документы» и «Музыка». Эти библиотеки представляют собой коллекции файлов и папок и не привязаны к точке файловой системы. –
Поскольку, как указывали другие, некоторые «папки» не имеют * пути, возможно, если вы объясните, что вы планируете * делать * с этими путями, мы могли бы сделать некоторые предложения. –
Я просто хочу определить открытые специальные папки и записать их в свое приложение – Elmo