Создание файла не удается в стандартной учетной записи (Vista) - PullRequest
0 голосов
/ 04 июня 2009

Я создал приложение C #, которое создает файл изображения на рабочем столе. Он отлично работает в XP и Vista (учетная запись администратора), но не удается создать файл образа на рабочем столе в Vista (стандартная учетная запись).

Должен ли я включить файл манифеста в приложение для правильной работы? Если я добавлю манифест, будет ли он работать на XP без проблем?

Извините, если это хромой вопрос. Заранее спасибо.

Ответы [ 7 ]

5 голосов
/ 04 июня 2009

Убедитесь, что вы используете класс System.Environment.SpecialFolder, чтобы сообщить, где на самом деле находится рабочий стол вашего пользователя.

2 голосов
/ 04 июня 2009

В какой папке вы пытаетесь создать файл? Общая папка рабочего стола или папка рабочего стола пользователя? Обычные пользователи не могут создавать общие файлы рабочего стола.

Вы должны писать в папку, указанную в следующем значении реестра:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop
0 голосов
/ 23 сентября 2009

Мое предложение необходимо только при попытке выполнить File IO в системном каталоге, таком как C: \ Program Files ...

0 голосов
/ 23 сентября 2009

С помощью в каталоге вашего приложения дать пользователям разрешение на владение и удаление. Это включает нажатие кнопки «Дополнительно» на вкладке «Безопасность». Как только вы примените изменения, ваш File IO должен работать нормально.

0 голосов
/ 04 июня 2009

Бьюсь об заклад, это права доступа. Вероятно, было бы хорошо, если бы в Vista UAC, которая запрашивает разрешение, была бы хорошая вещь.

Проверьте эту ссылку для получения доступа к UAC:

Требование повышения UAC для приложения

0 голосов
/ 04 июня 2009

У вас не должно возникнуть проблем при создании файла на рабочем столе. Однако этот рабочий стол теперь может иметь другое местоположение. Вы действительно пытаетесь создать файл на рабочем столе Vista, или случайно все еще пытаетесь создать файл, используя пути из XP? Можете ли вы перевести свой код в 20-строчный пример?

0 голосов
/ 04 июня 2009

Чтобы ответить на ваш первый вопрос, в отсутствие каких-либо подробностей о коде и сгенерированных ошибках это звучит так, будто у стандартной учетной записи нет прав на создание файла на рабочем столе.

Можно ли сделать это вручную при входе в систему с использованием стандартной учетной записи? У меня не установлена ​​Vista, поэтому я не могу проверить себя.

...