При использовании FileCopy
, выдало отказано в доступе. Запускал VS от администратора, не помогло.
Воспользуйтесь классом FileInfo
new FileInfo("что скопировать").CopyTo("куда скопировать");
1. Почему ошибка?
Как ни странно - потому что не хватает прав. Даже пользователь с правами администратора, по-умолчанию, не имеет доступа к некоторым системным файлам и папкам. Или права могут быть настроены так, что доступ конкретному пользователю или группе запрещен, независимо от прав, т.к. отсутствие прав может быть перекрыто разрешением, а запрет доступа - не может быть перекрыт ни чем.
2. Как проверить.
Для начала нужно найти в файловой системе интересующий файл и папку, в которой он должен оказаться.
Когда нашли - попытаться скопировать файл средствами ОС (ну руками то есть).
Если все успешно - переходим к следующему пункту, если нет - проверяем и настраиваем права, если это возможно и вообще имеет смысл (все случаи индивидуальны, общих рекомендаций не будет), после чего снова проверяем в ручном режиме.
3. Все равно не работает
Если на предыдущем шаге выяснилось, что права файловой системы ни при чем, или успешно исправлены, начинаем искать ошибки в программе.
Не найден исходный файл. Путь к файлу мог быть указан с ошибкой, особенно касается относительных путей. Тема относительных путей обсуждалась тут и на EnSO уже не раз.
Не доступен исходный файл. Файл может быть открыт на чтение или запись вашей или другой программой в монопольном режиме. В этом случае файл прочитать нельзя. С чужой программой вы ни чего не сделаете, а в своей стоит поискать незакрытые потоки, связанные с этим файлом, и добавить команды закрытия при обнаружении.
Если проблем с исходным файлом нет или они благополучно исправлены, проверяем целевую папку, а именно - проверяем корректность полного пути, особенно, если в коде использован относительный путь. Находим ошибку в формировании пути и исправляем ее.
В редком случае, может потребоваться пробный запуск программы на другой машине, чтобы исключить ошибки физического диска, но обычно это можно выяснить еще на этапе ручной проверки возможности копирования.
Если все перечисленное выше сделано аккуратно и внимательно, то либо исчезнет проблема, либо появится новый вопрос, но уже по архитектуре и/или логике программы.
Ну и почитайте ответ на родственный вопрос. Там есть информация для размышления и для вашего случая.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Необходимо создать консольную программу для реализации афинного шифра (рекуррентный не нужен) Русский алфавит, точка, запитая, пробел
Можно ли писать на c#, используя мак? Ну и в целом, если купить макбук, то можно ли работать с платформойnet? Не могу найти аналога макбука по качеству...
Пытаюсь программно лайкнуть определенный коммент на ютубе
Здравствуйте, я забыл как объявлять callback'и, приведите пожалуйста пример callback'а, который возвращал как нибудь String и TcpClient, и собственно всё...