powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Environment.SpecialFolder.MyDocuments в Win7 возвращает пустую строку
16 сообщений из 16, страница 1 из 1
Environment.SpecialFolder.MyDocuments в Win7 возвращает пустую строку
    #38539900
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
До сих пор в своём "колхозе" с Win7 не бодался, а тут вдруг всплыл такой конфуз:
прога для оперативной обработки файлов (архивация, разархивация) создаёт временную
папку в папке "Мои документы" пользователя. На XP работает как швейцарские часы.
На семёрке начались проблемы - пока понял лишь то, что Environment.SpecialFolder.MyDocuments
возвращает пустую строку.
Почему? Как побороть?
...
Рейтинг: 0 / 0
Environment.SpecialFolder.MyDocuments в Win7 возвращает пустую строку
    #38540249
Sergey S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может
Код: c#
1.
System.IO.Path.GetTempPath()


Подойдет больше?
...
Рейтинг: 0 / 0
Environment.SpecialFolder.MyDocuments в Win7 возвращает пустую строку
    #38540292
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey S,

Нет, эта "помойка" совсем плохой вариант.
...
Рейтинг: 0 / 0
Environment.SpecialFolder.MyDocuments в Win7 возвращает пустую строку
    #38540339
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barkan, у тебя не служба случайно? Если обычное gui приложение, то не запускается ли оно через task scheduler?

Согласен с Sergey S что папка Temp лучше здесь подходит. Именно для временных файлов она и предназначена.
...
Рейтинг: 0 / 0
Environment.SpecialFolder.MyDocuments в Win7 возвращает пустую строку
    #38540350
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazile,

Это gui приложение, запускается пользователем вручную.
Простенькая такая "лисапедная" система документооборота.
Документы хранятся в БД (в зазипованном виде).
При открытии документа из базы достаётся архив, раззипуется в Мои документы\Temp,
открывается приложением по умолчанию.

Почему мне не нравится System.IO.Path.GetTempPath()?
Когда пользователь (тётя Фрося) откроет документ и нажмёт
в Ворде "Сохранить как" то увидит всю эту "помойку" - и будет
задавать "лишние" вопросы.
...
Рейтинг: 0 / 0
Environment.SpecialFolder.MyDocuments в Win7 возвращает пустую строку
    #38540358
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarkanКогда пользователь (тётя Фрося) откроет документ и нажмёт
в Ворде "Сохранить как" то увидит всю эту "помойку"

то есть в диалоге сохранения файлов трудно перед показом пользователя изменить директорию сохранения?
...
Рейтинг: 0 / 0
Environment.SpecialFolder.MyDocuments в Win7 возвращает пустую строку
    #38540392
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,

????????
В диалоге "Сохранить как" Ворда (Екселя и прочих разных программ) предварительно задать папку?
Что-то я Вас не понял. И Вы меня походу тоже.

Я на Win7 не могу программно сохранить файл в "Мои документы" из-за того, что
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
выдаёт мне пустую строку. Ситауция - наиглупейшая, но гугление пока не даёт мне ответа.
...
Рейтинг: 0 / 0
Environment.SpecialFolder.MyDocuments в Win7 возвращает пустую строку
    #38540411
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то как-то странно, специально попробовал, возвращает все как надо.
...
Рейтинг: 0 / 0
Environment.SpecialFolder.MyDocuments в Win7 возвращает пустую строку
    #38540415
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarkanВ диалоге "Сохранить как" Ворда (Екселя и прочих разных программ) предварительно задать папку?

причем здесь ворд и так далее?
Barkanпрога для оперативной обработки файлов (архивация, разархивация)

Вы, пожалуйста, объясните четче бизнес-процесс...

PS Вы уверены точно, что Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) возвращает пустую строку?
...
Рейтинг: 0 / 0
Environment.SpecialFolder.MyDocuments в Win7 возвращает пустую строку
    #38540424
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,

Сейчас у меня под рукой только XP.
Вечером буду подробнее разбираться с доступными мне Win7, завтра отчитаюсь.
...
Рейтинг: 0 / 0
Environment.SpecialFolder.MyDocuments в Win7 возвращает пустую строку
    #38540460
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barkan,

..по-моему, в Вин7 эта папка (в реестре, по крайней мере) называется Personal
...
Рейтинг: 0 / 0
Environment.SpecialFolder.MyDocuments в Win7 возвращает пустую строку
    #38540465
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
carrotikBarkan,

..по-моему, в Вин7 эта папка (в реестре, по крайней мере) называется PersonalДык для этого он и использует Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) и эта хрень должна возвращать все правильно.
...
Рейтинг: 0 / 0
Environment.SpecialFolder.MyDocuments в Win7 возвращает пустую строку
    #38540497
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fortibransa,

...да, сейчас проверил на 2008 сервере - выдает все правильно по Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

... может там что-то с правами программы ...у 7-ки могут быть непонятки ...
...
Рейтинг: 0 / 0
Environment.SpecialFolder.MyDocuments в Win7 возвращает пустую строку
    #38541441
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит проверил на двух доступных мне компах с Win7.

Вот такой код:
Код: vbnet
1.
2.
3.
Debug.Print("System.IO.Path.GetTempPath={0}", System.IO.Path.GetTempPath)
Debug.Print("Environment.SpecialFolder.Personal={0}", Environment.GetFolderPath(Environment.SpecialFolder.Personal))
Debug.Print("Environment.SpecialFolder.MyDocuments={0}", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments))



Даёт на компе № 1 такой результат:
System.IO.Path.GetTempPath=C:\Users\worker\AppData\Local\Temp\
Environment.SpecialFolder.Personal=C:\Users\worker\Documents
Environment.SpecialFolder.MyDocuments=C:\Users\worker\Documents

На компе № 2:
System.IO.Path.GetTempPath=C:\Users\Работник\AppData\Local\Temp\
Environment.SpecialFolder.Personal=
Environment.SpecialFolder.MyDocuments=

На обоих компах в свойствах "Документы" (Пуск \ Документы) указано расположение на D:\Мои документы
При открытии окна "Документы" (Пуск \ Документы) на компе № 1 вижу содержимое D:\Мои документы,
на компе № 2 вижу содержимое C:\Users\Работник\Documents

В итоге на обоих компах не получается программно сохранить файл именно в D:\Мои документы
...
Рейтинг: 0 / 0
Environment.SpecialFolder.MyDocuments в Win7 возвращает пустую строку
    #38541838
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarkanНа обоих компах в свойствах "Документы" (Пуск \ Документы)
это виртуальный фолдер (фактически список реальных)
извлекается SHGetFolderLocation из shell32.dll


Environment.GetFolderPath просто вызывает SHGetFolderPath из shell32.dll
в случае любой ошибки кроме неподдержаного значения параметра возвращается пустая строка

посмотри куда указывают "мои документы" из эксплорера
или в реестре [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
Personal

P.S. реестр попорчен, админу - в бубен дать - пусть чинит
...
Рейтинг: 0 / 0
Environment.SpecialFolder.MyDocuments в Win7 возвращает пустую строку
    #38544428
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилили в реестре [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
Personal
P.S. реестр попорчен, админу - в бубен дать - пусть чинит

Спасибо за подсказку!
Хотя изменение значения указанного Вами параметра не помогло,
рядом нашёлся другой параметр, который помог исправить положение.
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]Personal

Осталось только выяснить, не выйдет ли нам это боком в другом месте.

P.S. Жаль в бубен дать не кому!
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Environment.SpecialFolder.MyDocuments в Win7 возвращает пустую строку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]