Загрузка...

При копировании файла в директорию вылазит ошибка

Тема в разделе C# создана пользователем Minin_inactive4471240 24 фев 2022. 203 просмотра

  1. Minin_inactive4471240
    Minin_inactive4471240 Автор темы 24 фев 2022 3 5 сен 2021
    Вылазит ошибка при копировании в директорию: Отказано в доступе. Как фиксить?

    Код
    [
    public static void SecondSaveFile()
    {
    string Newpath = "C:\\Desktop";
    Console.WriteLine(Newpath);
    Console.WriteLine("Введите нынешний путь файла: ");
    path = Console.ReadLine();

    if (File.Exists(Newpath))
    {
    File.Delete(Newpath);
    File.Copy(path, Newpath);
    }
    }
    /CODE]
     
    24 фев 2022 Изменено
  2. vtlstolyarov
    vtlstolyarov 24 фев 2022 474 8 янв 2022
    1. Посмотреть предыдущие комментарии (7)
    2. vtlstolyarov
      Minin_inactive4471240, а чего ты ждал? По первому условию ты пойдёшь в else потому что такого файла не существует (существует такая папка), а в этой ветке ты попытаешься переместить файл задав ему в качестве НОВОГО ИМЕНИ путь к папке - естественно что эта команда падает потому что этот путь занят папкой.

      В документации чётко написано что вторым параметром надо передать новый путь к файлу И ЕГО ИМЯ (а не путь к папке в которую ты хочешь его переместить).
    3. vtlstolyarov
      Minin_inactive4471240, Чел, ты немного туговат - "C:\Users" тоже требует прав администратора для доступа. Вот пример который переместит указанный в консоли файл на твой рабочий стол (не забывай что путь который ты вводишь должен быть доступен без прав администратора, иначе программу надо запускать с правами администратора чтобы она отработала):
      C#
      public static void SecondSaveFile()
      {
      Console.WriteLine("Введите нынешний путь файла: ");
      string path = Console.ReadLine();

      string newPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), Path.GetFileName(path));
      Console.WriteLine($"Новый путь: {newPath}");
      try
      {
      if (File.Exists(newPath))
      {
      File.Delete(newPath);
      }

      File.Move(path, newPath);
      Console.WriteLine("Ready");
      }
      catch (Exception ex)
      {
      Console.WriteLine($"Error: {ex.Message}");
      }
      }
Загрузка...
Top