Как определить путь к папке Загрузки | |
---|---|
Каратаев Автор Сообщений: 3974 Откуда: Алматы Дата регистрации: 04.12.2001 |
Добрый день!
Понадобилось из программы смотреть в папку Downloads... Напрямую не нашёл как ни в Fso, ни в WSHShell... Сделал вот так:
------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. |
Re: Как определить путь к папке Загрузки | |
---|---|
Alsim Сообщений: 3636 Откуда: Екатеринбург Дата регистрации: 17.11.2004 |
У меня на 11ой винде нормально работает.
Разве что файл сохранят в другом месте. |
Re: Как определить путь к папке Загрузки | |
---|---|
Каратаев Автор Сообщений: 3974 Откуда: Алматы Дата регистрации: 04.12.2001 |
Не понял, что именно работает? Тот код, что я привёл, у меня на 10-ке тоже нормально работает, просто странно, что вот так приходится этот путь вычислять... ------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. |
Re: Как определить путь к папке Загрузки | |
---|---|
po2 Сообщений: 2864 Откуда: Иркутск Дата регистрации: 22.12.2001 |
Давно не в теме, но порыл интернет, вроде как функция SHGetKnownFolderPath сгодится.
|
Re: Как определить путь к папке Загрузки | |
---|---|
Alsim Сообщений: 3636 Откуда: Екатеринбург Дата регистрации: 17.11.2004 |
На всякий случай проверил у себя, мало ли. Код вполне симпатичный, я бы гораздо тяжелее сделал через системные переменные винды. Что мне НЕ нравится: то что папка загрузки может быть любой у пользователя. От рабочего стола, до совершенно другого места известного только ему. В хроме, к примеру если начнёшь сохранять в папку "прогулки" на столе, так он туда и будет валить все остальное время |
Re: Как определить путь к папке Загрузки | |
---|---|
danton1973 Сообщений: 143 Откуда: Пермь Дата регистрации: 10.08.2020 |
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
такой вариант? |
Re: Как определить путь к папке Загрузки | |
---|---|
Каратаев Автор Сообщений: 3974 Откуда: Алматы Дата регистрации: 04.12.2001 |
В данном случае это не имеет значения: программа на терминальном сервере, там пользователи не имеют прав на изменение системных папок. Особо не искал её описание, но так, навскидку погуглил и толком не понял как её использовать. Она же вроде в shell32.dll? Терминальный сервер x64... Но тут надо пробовать... Если не ошибаюсь, для чтения ключей из реестра надо ещё и класс registry цеплять... Вот не хотелось бы лишнего накручивать... Так, что скорее всего обойдусь своим примитивным кодом... ------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. |
Re: Как определить путь к папке Загрузки | |
---|---|
Каратаев Автор Сообщений: 3974 Откуда: Алматы Дата регистрации: 04.12.2001 |
К тому-же, папка Downloads в реестре прописана только ключом, а тот же Desktop - названием. Путь к Desktop из реестра получить легко, но я его и так получаю в своём коде.
А вот к Downloads... Ведь ключи реестра на разных машинах могут быть разные, даже на терминале и разных пользователей... В любом случае тут проблема... ------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. |
Re: Как определить путь к папке Загрузки | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Это нормально, так и должно быть. docs.microsoft.com FOLDERID_Downloads имеет GUID {374DE290-123F-4565-9164-39C4925E467B} и он во всех системах будет таковым. Но лазить через реестр в эту ветку не следует - там прямо так и написано, между прочим Есть способ проще, надеюсь и на терминалках будет работать.
Правда толку от этого не очень много, т.к. браузеры (даже МС-овские) вольны сохранять загружаемые файлы куда угодно ------------------ WBR, Igor |
Re: Как определить путь к папке Загрузки | |
---|---|
Каратаев Автор Сообщений: 3974 Откуда: Алматы Дата регистрации: 04.12.2001 |
Игорь, спасибо, но это не работает. Выдаёт ошибку:
[attachment 35633 err.png] Пробовал и объект создавать и ему уже задавать .Self.Path Не работает... А потом, папки Downloads почему-то нет даже в перечне специальных папок... Смотрел примеры на VB.NET и др... Везде эта папка отсутствует... Вот нет её в списке... Или я что-то не так делаю... ------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. |
Re: Как определить путь к папке Загрузки | |
---|---|
Каратаев Автор Сообщений: 3974 Откуда: Алматы Дата регистрации: 04.12.2001 |
Функция срабатывает из программы и просто молча загружает в папку Загрузки. Здесь у пользователей нет возможности изменить путь... ------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. |
Re: Как определить путь к папке Загрузки | |
---|---|
ssa Сообщений: 12999 Откуда: Москва Дата регистрации: 23.03.2005 |
Работает. Надо просто немного внимательней копировать отсюда в фокс. Должно быть shell:downloads ------------------ Лень - это неосознанная мудрость. |
Re: Как определить путь к папке Загрузки | |
---|---|
Каратаев Автор Сообщений: 3974 Откуда: Алматы Дата регистрации: 04.12.2001 |
Точно! Вот я косой! Работает! Спасибо! ------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. |
Re: Как определить путь к папке Загрузки | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Это список CSIDL - цифровые идентификаторы "известных папок", применявшиеся в WinXP и ранее. Начиная с висты вместо них используются GUID, известные как KNOWNFOLDERID - их во-первых банально больше (и число растёт с каждой новой версией ОС, и даже просто с некоторыми большими обновлениями), а во-вторых эта система позволяет даже сторонним производителям регистрировать свои "известные местоположения", и организовывать их специфическую обработку в "расширениях" проводника - т.е. система гибкая и расширяемая. В новых версиях АПИ даже не требуется "знать" возможные значения кодов - т.к. есть специальная функция для "перечисления" всех текущих известных системе "специальных папок". Правда это АПИ не доступно скриптовым языкам и фоксу в том числе. Конкретно папка "загрузки" не имеет старорежимного CSIDL, потому её не получить "старинными" АПИ вызовами. ------------------ WBR, Igor |
Re: Как определить путь к папке Загрузки | |
---|---|
Каратаев Автор Сообщений: 3974 Откуда: Алматы Дата регистрации: 04.12.2001 |
Игорь, спасибо!
Теперь понятно, почему я не находил эту папку в списке... А заодно, понял и совет po2, который предлагал использовать SHGetKnownFolderPath. Судя по названию - как раз с KNOWNFOLDERID работает... Ваш код уже применил, отлично работает и на терминале. Ещё раз спасибо! ------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. |
© 2000-2024 Fox Club  |