2009-05-15 2 views
2

У меня есть эта партия, которую нужно запустить, которую должен выполнить пользователь, который скопирует простой xml-файл. Тем не менее, все отлично работает на Windows 2000/XP. Тем не менее, на Windows Vista я получаю сообщение об ошибке «Отказано в доступе».Доступ запрещен при попытке скопировать файл Windows Vista

Даже когда я пытаюсь скопировать файл только с помощью окна проводника на Vista, я получаю ту же ошибку.

Что я могу сделать, чтобы сделать это копия файла. должен ли я добавить любой дополнительный код в мой файл летучей мыши, чтобы включить копирование этого файла?

Большое спасибо.

@ECHO OFF 
REM copy config file to the windows/system32 
copy config.xml c:\windows\system32\DataLinks.xml 
+0

Не видел ничего связанного с C#, поэтому я позволил удалить тег и упомянуть в сообщении. Если я ошибаюсь, верните его. –

ответ

5

Я предполагаю, что это потому, что вы пытаетесь изменить окна \ system32. Vista, 7 и будущая версия Windows требуют повышенных привилегий eges для изменения system32.

Вам действительно нужно поставить этот файл в system32? Если это произвольное местоположение, почему бы не поместить его в каталог AppData пользователя (% AppData% \ DataLinks.xml)?

AppData - это стандартный каталог, который существует со времен Windows 2000, который скрывается в папке «Документы и настройки пользователя» или «Пользователи» пользователя (в зависимости от версии). Это скрытая, но редактируемая пользователем папка, предназначенная для параметров приложения, которые пользователь должен иметь возможность получить, но в основном используется только вашим кодом.

+0

Привет, да. Я думаю, что это была бы лучшая идея. Однако, есть ли у Windows XP одна и та же папка? Как это было бы установлено как для xp/vista, так и, возможно, для будущих выпусков окон? – ant2009

+0

Он сказал: «.. это было вокруг с Windows 2000 ..» – xian

+0

Я отредактировал это как ответ. – Merus

2
  1. Вам нужно возвышенные privs скопировать% WINDIR% \ system32
  2. Вы не должны копировать данные конфигурации в% WINDIR% на всех. Это для Windows. Используйте% AppData%.
  3. Если скопировать в папку% WINDIR%, использовать переменную% WINDIR% и не жёстко по пути C: \ Windows
0

JS Bangs прав; используйте переменную% windir%. Большую часть времени, когда вы делаете это, он не даст никаких ошибок.

Пример:

@ECHO OFF 
REM copy config file to the windows/system32 
copy config.xml %windir%\system32\DataLinks.xml 

Но в то время как вы? Просто поместите его в любой другой. Как AppData то, что уже было сказано:

@ECHO OFF 
REM copy config file to the windows/system32 
copy config.xml %appdata%\DataLinks.xml 
Смежные вопросы