Проблема с копированием в Windows 7 и моей программе на C # - PullRequest
1 голос
/ 19 ноября 2009

Я делаю это в моей программе на C #:

File.copy(Application.StartupPath + "\Test.txt",@"c:\Test.txt");

Но я получаю эту ошибку:

Access to  the path 'c\Test.txt' is denied

Это происходит только в Windows 7, в Windows XP работает отлично.

Ответы [ 5 ]

10 голосов
/ 19 ноября 2009

Доступ запрещен. Это означает, что у вас нет доступа. Нет, правда.

Учетные записи пользователей в Windows 7 по умолчанию ограничены (без прав администратора), поэтому ваша программа не может просто писать где-либо в системе (и это хорошо) Попробуйте поместить Test.txt в другой каталог, например временный каталог (спросите систему, где он находится).

2 голосов
/ 19 ноября 2009

В дополнение к тому, что говорили другие, попробуйте использовать Специальные папки . и узнайте немного о Создание приложения UAC Aware

2 голосов
/ 19 ноября 2009

Win 7 блокирует корневую папку на системном диске ... поместите файл туда, где у вас есть права на копирование.

1 голос
/ 19 ноября 2009

Лучше всего присоединить файл и путь с помощью Path.Join

File.copy(Path.Join(Application.StartupPath, "\Test.txt"), @"c:\Test.txt");
1 голос
/ 19 ноября 2009

Windows 7 не разрешает доступ к программным папкам и корневой папке. Вы можете предоставить автору каталога доступ или изменить путь назначения для одной пользовательской папки, например «Мои документы» или Каталог приложений.

Вы можете заблокировать эти пути с помощью Environment.GetFolderPath ();

Пример

Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData); возврат:"C: \ Users \ Admin \ AppData \ Roaming"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...