Ошибка ввода вывода в программе

Содержание

Помимо тех исключений, которые могут быть созданы в любом вызове метода (например, OutOfMemoryException при высокой нагрузке на систему или NullReferenceException при ошибке в программе), методы файловой системы .NET могут создавать следующие исключения:

  • System.IO.IOException — служит базовым классом для всех типов исключений System.IO. Это исключение создается для ошибок, у которых код возврата из операционной системы не сопоставляется напрямую с другим типом исключения.
  • System.IO.FileNotFoundException.
  • System.IO.DirectoryNotFoundException.
  • DriveNotFoundException.
  • System.IO.PathTooLongException.
  • System.OperationCanceledException.
  • System.UnauthorizedAccessException.
  • System.ArgumentException — создается для недопустимых символов пути на платформе .NET Framework, а также .NET Core 2.0 и предыдущих версиях.
  • System.NotSupportedException — создается для недопустимых двоеточий в .NET Framework.
  • System.Security.SecurityException — создается для приложений в частичном доверии, которые не имеют необходимых разрешений (только на платформе .NET Framework). На платформе .NET Framework по умолчанию используется полное доверие.

Сопоставление кодов ошибок с исключениями

Так как файловая система представляет собой ресурс операционной системы, методы ввода-вывода в .NET Core и .NET Framework служат оболочками для соответствующих вызовов операционной системы. Если в коде, выполняемом операционной системой, возникает ошибка ввода-вывода, операционная система возвращает сведения об ошибке в метод ввода-вывода .NET. Затем этот метод преобразует сведения об ошибке, обычно представленные кодом ошибки, в соответствующий тип исключения .NET. В большинстве случаев код ошибки напрямую определяет нужный тип исключения. Метод не выполняет никакой дополнительной обработки в соответствии с контекстом вызова метода.

2023 Как исправить ошибку ввода вывода внешнего жесткого диска?

Например, при вызове метода в операционной системе Windows код ошибки ERROR_FILE_NOT_FOUND (или 0x02) преобразуется в исключение FileNotFoundException, а код ошибки ERROR_PATH_NOT_FOUND (или 0x03) — в DirectoryNotFoundException.

К сожалению, точные условия возникновения определенных кодов ошибок в операционной системе часто не документируются или документируются в недостаточном объеме. Это означает, что возможны непредвиденные исключения. Например, при работе с каталогом логично ожидать, что передача недопустимого пути в конструктор DirectoryInfo приведет к созданию исключения DirectoryNotFoundException. Но в этой ситуации может создаваться и FileNotFoundException.

Обработка исключений при операциях ввода-вывода

По причине зависимости от операционной системы иногда идентичные условия (например, отсутствие указанного каталога) могут создавать в методах ввода-вывода любое исключение из класса ввода-вывода. Это означает, что при вызове интерфейсов API ввода-вывода ваш код должн быть готов обработать все такие исключения или большую их часть, как показано в следующей таблице:

РЕШЕНО! Ошибка ввода вывода qbittorrent — как устранить?

Тип исключения .NET Core и .NET 5 или более поздней версии .NET Framework
IOException Да Да
FileNotFoundException Да Да
DirectoryNotFoundException Да Да
DriveNotFoundException Да Да
PathTooLongException Да Да
OperationCanceledException Да Да
UnauthorizedAccessException Да Да
ArgumentException .NET Core 2.0 или более ранняя версия Да
NotSupportedException Нет Да
SecurityException Нет Только для ограниченного доверия

Обработка IOException

IOException является базовым классом для исключений в пространстве имен System.IO и создается для любого кода ошибки, который не имеет сопоставления с определенным типом исключения. Это означает, что оно может появиться в любой операции ввода-вывода.

Так как IOException является базовым классом для других типов исключений в пространстве имен System.IO, его нужно обрабатывать в блоке catch после обработки других исключений, связанных с вводом-выводом.

Кроме того, в версии .NET Core 2.1 не применяется проверка правильности пути (например, отсутствия недопустимых символов в пути), и теперь среда выполнения создает исключение, сопоставленное с кодом ошибки операционной системы, а не результат проверки в собственном коде. В такой ситуации чаще всего создается исключение IOException, но вы можете столкнуться с любым другим типом исключений.

Обратите внимание, что в коде обработки исключений IOException всегда нужно обрабатывать последним. Иначе блоки catch для производных классов не проверяются, ведь это исключение является базовым классом для всех остальных.

В случае с IOException дополнительные сведения об ошибке можно получить из свойства IOException.HResult. Чтобы преобразовать значение HResult в код ошибки Win32, отбросьте верхние 16 бит из 32-разрядного значения. В приведенной ниже таблице перечислены коды ошибок, которые могут быть заключены в IOException.

HResult Константа Описание
ERROR_SHARING_VIOLATION 32 Отсутствует имя файла, или файл или каталог уже используется.
ERROR_FILE_EXISTS 80 Файл уже существует.
ERROR_INVALID_PARAMETER 87 Методу передан недопустимый аргумент.
ERROR_ALREADY_EXISTS 183 Файл или каталог уже существует.

Для обработки этих исключений можно применить предложение When в инструкции catch, как показано в приведенном ниже примере.

Imports System.IO Module Program Sub Main(args As String()) Dim sw = OpenStream(«.textfile.txt») If sw Is Nothing Then Return sw.WriteLine(«This is the first line.») sw.WriteLine(«This is the second line.») sw.Close() End Sub Function OpenStream(path As String) As StreamWriter If path Is Nothing Then Console.WriteLine(«You did not supply a file path.») Return Nothing End If Try Dim fs As New FileStream(path, FileMode.CreateNew) Return New StreamWriter(fs) Catch e As FileNotFoundException Console.WriteLine(«The file or directory cannot be found.») Catch e As DirectoryNotFoundException Console.WriteLine(«The file or directory cannot be found.») Catch e As DriveNotFoundException Console.WriteLine(«The drive specified in ‘path’ is invalid.») Catch e As PathTooLongException Console.WriteLine(«‘path’ exceeds the maximum supported path length.») Catch e As UnauthorizedAccessException Console.WriteLine(«You do not have permission to create this file.») Catch e As IOException When (e.HResult And There is a sharing violation.») Catch e As IOException When (e.HResult And The file already exists.») Catch e As IOException Console.WriteLine($»An exception occurred:Error code: » + $»Message: «) End Try Return Nothing End Function End Module

Читайте также:
МФЦ как работать в программе

См. также

  • Обработка и создание исключений в .NET
  • Обработка исключений (библиотека параллельных задач)
  • Лучшие методики обработки исключений
  • Практическое руководство. Использование определенных исключений в блоке catch

Источник: learn.microsoft.com

Ошибка ввода вывода на устройстве: жестком диске, флешке или SSD — как исправить

Как исправить ошибку ввода вывода на жестком диске или флешке

При тех или иных операциях с жестким диском, USB флешкой, SSD или картой памяти, например, при работе с разделами в управлении дисками или Diskpart, пользователь Windows 10, 8.1 или Windows 7 может столкнуться с ошибками «Запрос не был выполнен из-за ошибки ввода/вывода на устройстве» или просто «Ошибка ввода вывода» и не всегда ясно, чем вызвана проблема и как её исправить.

В этой инструкции подробно о том, что может вызывать сообщение «Запрос не был выполнен из-за ошибки ввода/вывода на устройстве» для HDD, SSD, флешек и карт памяти и как можно попробовать исправить эту ошибку.

  • Простые случаи ошибки ввода вывода и методы исправления
  • Драйверы SATA и USB
  • Проверка состояния и ошибок диска
  • Время ожидания диска в реестре
  • Видео инструкция

Простые случаи ошибки ввода/вывода и методы исправления

Запрос не был выполнен из-за ошибки ввода вывода на устройстве

Сначала о некоторых частых и очень простых ситуациях, приводящих к появлению сообщения об ошибке ввода/вывода:

  • Если ошибка возникает при действиях с картой памяти SD (или MicroSD, подключенной через адаптер) или USB флешкой, проверьте, присутствует ли на ней переключатель защиты от записи и не стоит ли он в положении запрета записи («Lock»). Включение такой защиты приводит к рассматриваемой ошибке. Переключатели защиты от записи на накопителях
  • Если проблем возникает с жестким диском или SSD, подключенным через SATA-интерфейс, попробуйте переподключить, а лучше заменить кабель SATA. Если свободного кабеля нет, можно попробовать временно подключить диск кабелем от необязательного устройства, например, привода DVD. При отсутствии возможности проверки другого кабеля желательно проверить подключение имеющегося как со стороны материнской платы, так и со стороны самого диска. Проверка подключения кабеля SATA
  • При возникновении проблемы при работе с флешкой или внешним жестким диском, попробуйте использовать другие разъемы USB, в том числе разных версий — USB 2.0 и 3.0, в случае ПК — сзади корпуса.
  • Учитывайте, что появление ошибки ввода/вывода при подключении внешнего жесткого диска по USB может говорить о недостатке питания (вследствие износа блока питания компьютера или при использовании на ноутбуке при работе от батареи).
  • Если ошибка появляется после включения компьютера или ноутбука, но исчезает после перезагрузки, отключите быстрый запуск Windows 10 (подойдет и для 8.1).
  • Некоторые пользователи сообщают, что им помогла смена буквы диска, об этом: Как изменить букву диска или флешки в Windows.

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

Драйверы SATA и USB

Иногда проблема может быть вызвана тем, что в системе не установлены «правильные» для текущей системы драйверы для работы с SATA или USB устройствами. Вместо них — автоматически устанавливаемые Windows совместимые драйверы.

Проверьте, есть ли на официальном сайте вашего ноутбука или материнской платы ПК (именно для вашей модели устройства) доступные драйверы SATA/AHCI/RAID и USB для загрузки. Также имеет смысл загрузить и установить драйверы чипсета. При этом учитывайте, что даже если на вашем компьютере установлена Windows 10, а на сайте доступны драйверы только для предыдущих версий ОС, как правило их можно безопасно установить и они будут исправно работать.

Проверка состояния и ошибок диска

Если проблемный диск виден в системе и ему назначена буква, попробуйте выполнить простую проверку диска на ошибки:

chkdsk D: /f /r /x

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

Проверка статуса SMART для жесткого диска и SSD

Особое внимание обратите внимание на показания следующих атрибутов (часть из них могут отсутствовать для вашего диска): 05, 0A, C4, C5, C6, С7. Выход этих и других параметров за рамки значений для «здорового» сообщат вам о том, что, вероятно, ошибка вызвана техническим состоянием диска.

Настройка времени ожидания отклика диска в реестре

Этот пункт может быть актуален для подключенных жестких дисков как внутренних, так и внешних, особенно для тех, которые иногда переходят в режим сна.

В реестре Windows присутствует параметр, который отвечает за то, в течение какого времени следует ожидать ответа от дисков и, если предел был достигнут, вы можете получить сообщение об ошибке ввода/вывода. Значение параметра можно изменить:

  1. Нажмите клавиши Win+R на клавиатуре, введите regedit и нажмите Enter, откроется редактор реестра.
  2. Перейдите к разделу реестра
Читайте также:
Чем заканчивается программа в информатике

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesdisk

Изменение параметра TimeOutValue для дисков в реестре Windows

  • Обратите внимание на значение параметра TimeOutValue в правой панели редактора реестра. Дважды нажав по нему и выбрав десятичное представление, вы можете задать нужное вам значение ожидания в секундах.
  • По завершении, сохраните сделанные изменения, закройте редактор реестра и перезагрузите компьютер, а затем проверьте, сохраняется ли ошибка.

    Видео инструкция

    Если диск или флешка сообщает об ошибках ввода вывода на любом компьютере или ноутбуке, при этом контакты на накопителе в порядке (не окислены и не повреждены), есть большая вероятность, что вы имеете дело с аппаратной неисправностью вашего HDD, SSD или USB накопителя и, возможно, оптимальным подходом будет его замена.

    Источник: remontka.pro

    Исправить ошибку устройства ввода-вывода на внешнем жёстком диске/USB-накопителе в Windows

    Здесь предлагается 5 решений для исправления ошибки устройства ввода-вывода: как исправить ошибку устройства ввода-вывода в командной строке и исправить ошибку устройства ввода-вывода, изменив режим передачи для диска в свойствах канала IDE. Попробуйте исправить «Запрос не был выполнен из-за ошибки ввода/вывода на устройстве» на внешнем и внутреннем жёстком диске/USB-накопителе/SD-карте и восстановите свои данные.

    «Запрос не был выполнен из-за ошибки ввода/вывода на устройстве»

    I/O error, сокращение от «ошибка устройства ввода-вывода», обычно происходит на внешних жестких дисках, SD-картах, USB-накопителях, компакт-дисках или DVD-дисках, когда вы пытаетесь выполнить операции записи и чтения на устройстве в Windows 10/8 / 7.

    Обычно, когда вы пытаетесь получить доступ к файлам устройства, вы получаете сообщение об ошибке устройства ввода-вывода: «Запрос не был выполнен из-за ошибки ввода вывода на устройстве».

    The request could not be performed because of an I/O device error

    Краткое руководство — 5 способов исправить ошибку устройства ввода-вывода самостоятельно

    Чтобы решить вашу проблему, вы можете воспользоваться следующими методами и соответствующими рекомендациями, чтобы немедленно исправить ошибку устройства ввода-вывода на ваших устройствах хранения.

    5 способов Уровень риска Уровень сложности
    Проверить и изменить подключение устройства Низкий Простой
    Обновить/переустановить драйвер устройства Низкий Простой
    Изменить режим передачи устройства Средний Простой
    Отправить в ремонт Средний (возможное раскрытие конфиденциальности) Простой
    Командная строка Высокий (возможна потеря данных) Средний

    Обзор ошибок устройства ввода/вывода

    В большинстве случаев пользователи сталкиваются с ошибкой устройства ввода-вывода при попытке открыть жесткий диск или внешнее запоминающее устройство. Как определить, возникла ли у вас ошибка, и что делать, если она возникла? Давайте посмотрим.

    Симптомы

    • Отображается сообщение «Запрос не был выполнен из-за ошибки ввода вывода на устройстве».
    • «Только часть запроса ReadProcessMemory или WriteProcessMemory была выполнена»
    • «Коды ошибок ввода-вывода: ошибка 6, ошибка 21, ошибка 103, ошибка 105, ошибка 131»

    Причины

    • Проблема с подключением между запоминающими устройствами и ПК
    • Устаревший драйвер устройства Windows пытается использовать режим передачи, который аппаратное устройство не может использовать
    • Ваше устройство повреждено или испорчено, отображается как диск неизвестен или не инициализирован

    Итак, что делать с ошибкой устройства ввода-вывода на устройствах? Вот несколько советов:

    1. 1. Немедленно прекратите использование устройства.
    2. 2. Не отключайте и не переключайте устройство слишком часто.
    3. 3. Не пытайтесь форматировать, стирать или заново разбивать устройство на разделы.
    4. 4. Следуйте приведенным ниже методам один за другим, чтобы исправить эту ошибку самостоятельно.

    В зависимости от основной проблемы у вас есть следующие решения, позволяющие исправить ошибку устройства ввода-вывода на внешнем/внутреннем жёстком диске.

    Восстановить данные из устройства с ошибкой ввода-вывода (рекомендуется)

    Если у вас есть важные данные, утерянные на внешнем жёстком диске, USB-накопителе или SD-карте до или после исправления ошибки устройства ввода-вывода, вы можете восстановить свои файлы с помощью программного обеспечения для восстановления жёсткого диска — EaseUS Data Recovery Wizard.

    Программа для восстановления данных EaseUS поддерживает восстановление удаленных данных, восстановление форматированных файлов, восстановление файлов RAW и многое другое. Чтобы восстановить данные с вашего устройства, на котором произошла ошибка устройства ввода-вывода:

    Шаг 1: подключите свою проблемную карту памяти к компьютеру.

    Вставьте карту в картридер и подключите его к исправному ПК/ноутбуку.

    recover data step 1

    Шаг 2: запустите программу восстановления данных от EaseUS и начните сканировать карту.

    Запустите EaseUS Data Recovery Wizard на своем ПК и выберите карту памяти в столбце «Внешние устройства».

    Затем нажмите «Сканировать», чтобы начать поиск потерянных (удаленных) данных на SD-карте.

    recover data step2

    Шаг 3: проверьте и восстановите потерянные данные.

    Вы можете предварительно оценить состояние найденных фото и документов (посмотреть, открываются ли они / проверить их) — для этого достаточно двойного клика мышки по нужному файлу. Затем нажмите «Восстановить», чтобы сохранить файлы в безопасном месте на вашем ПК или внешнем хранилище.

    recover data step 3

    Способ 1. Проверьте и измените подключение устройства

    Плюсы:Легко, быстро, без потери данных.

    Минусы:/

    Вот советы, которые помогут вам проверить, вызвана ли ошибка ввода-вывода неплотным подключением или неисправным кабелем/портом USB:

    • Проверьте, не ослаблены ли соединительные кабели, затяните их.
    • Если соединительные кабели сломаны, замените на новые и снова подключите устройство.
    • Подключите внешний жесткий диск или USB к другому порту (особенно к заднему).
    • Если есть другой компьютер, попробуйте подключить то же устройство к другому компьютеру.

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

    Способ 2. Обновите или переустановите драйвер устройства

    Плюсы: Легко, быстро, без потери данных.

    Читайте также:
    Сетка программа для разбивки изображение на части

    Минусы:Неправильная работа может вызвать серьезные проблемы. Будьте осторожны!

    Устаревший драйвер является потенциальной причиной, которая может привести к различным проблемам на вашем устройстве. Например, «в указанном устройстве нет носителя», USB не отображается в Windows и «запрос не был выполнен из-за ошибки ввода/вывода на устройстве».

    Шаг 1. Подключите устройство с «Ошибка устройства ввода-вывода» к ПК, щелкните правой кнопкой мыши по «Этот компьютер» и выберите «Управление».

    Шаг 2. Нажмите «Диспетчер устройств», разверните «Дисковые устройства».

    Шаг 3. Щелкните правой кнопкой мыши по проблемному устройству и выберите «Обновить драйвер».

    Шаг 4. Щелкните «Автоматический поиск драйверов».

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

    Способ 3. Исправить ошибку устройства ввода-вывода — изменить режим передачи в IDE

    Плюсы: Без потери данных.

    Минусы: Неправильная работа может вызвать серьезные проблемы. Будьте осторожны!

    Как уже упоминалось, если Windows пытается использовать режим передачи, который не поддерживает ваше устройство, вы получите сообщение об ошибке «Запрос не был выполнен из-за ошибки ввода/вывода на устройстве». Чтобы исправить ошибку ввода-вывода, вам просто нужно переключить режим передачи, выполнив следующие действия:

    Шаг 1. Нажмите сочетание клавиш «Windows + X», чтобы открыть меню, затем выберите «Диспетчер устройств».

    Шаг 2. Разверните «Контроллеры IDE ATA/ATAPI». Откроется подмножество со списком различных каналов IDE ATA/ATAPI для компьютера.

    Шаг 3. Щелкните правой кнопкой мыши по каналу, к которому подключен соответствующий диск, и выберите «Свойства».

    Примечание: Не меняйте основной канал IDE Channel, Device 0. Изменение режима передачи Device 0 может вызвать ошибки в работе компьютера.

    Шаг 4. На вкладке «Дополнительные параметры» снимите флажок «Включить MDA» в поле «Режим передачи» для устройства, которое представляет соответствующий диск.

    Шаг 5. Затем нажмите «ОК» и закройте все окна.

    Fix I/O device error - change transfer mode

    Протестируйте диск и убедитесь, что сообщение «Запрос не был выполнен из-за ошибки ввода/вывода на устройстве» исчезло.

    Способ 4. Отправить в ремонт и исправить ошибку устройства ввода-вывода

    Плюсы: Без потери данных.

    Минусы: Дорого. Возможно раскрытие конфиденциальности.

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

    1. №1. Свяжитесь с производителем устройства и отправьте диск в ремонт.
    2. №2. Отправьте устройство в местный ремонтный центр.
    3. №3. Воспользуйтесь специализированным сервисом ремонта устройств и восстановления данных.

    Здесь вы можете попробовать сервис EaseUS для ремонта диска и восстановления данных с него:

    Do You Need Specialized Data Recovery Services?

    Consult with EaseUS Data Recovery Experts for one-on-one manual recovery service. We could offer the following services after FREE diagnosis: 1. Repair corrupted RAID structure, failed disk with I/O Device error (including .vmdk, .vhd, .vhdx, etc.) 2. Recover data and repair photos, videos from inaccessible, problematic hard drive partitions. 3. Unformat hard drive and repair raw drive(Bitlocker encrypted drive) Your privacy is secure here with EaseUS.

    Способ 5. Исправьте ошибку устройства ввода-вывода в командной строке

    Плюсы: Может помочь исправить ошибку устройства ввода-вывода.

    Минусы: Высокий риск потери данных.

    Эта опция запустит команду CHKDSK для проверки и исправления ошибок на жёстком диске, USB-накопителе или других устройствах хранения, чтобы исправить ошибку устройства ввода-вывода.

    Но этот вариант может вызвать серьезную потерю данных. Если вы склонны пробовать этот выход, переходите к следующей части и следуйте инструкции по восстановлению данных, чтобы заранее просканировать и восстановить ваши драгоценные файлы.

    Шаг 1. Нажмите сочетание клавиш Windows + S, введитеcmd, щелкните правой кнопкой мыши по «Командная строка» и выберите «Запуск от имени администратора».

    Шаг 2. Нажмите «Да», когда вам будет предложено запустить «Командную строку» от имени администратора.

    Шаг 3. Введите chkdsk E: /f /r /x(замените E буквой диска вашего устройства, которое выводит ошибку устройства ввода-вывода).

    Fix I/O device error with chkdsk command

    Примечание: некоторые из вас могут получить сообщение об ошибке «не удается открыть том для прямого доступа», используя CMD, но не беспокойтесь и просто перейдите по ссылке, чтобы немедленно исправить ошибку.

    Вот более простой способ восстановить поврежденную файловую систему.

    EaseUS CleanGenius — это удобный инструмент для ремонта компьютера, который одновременно безопасен и легок. Это прекрасная альтернатива команде CHKDSK. Используйте этот инструмент, чтобы легко исправить поврежденную файловую систему в один клик.

    EaseUS CleanGenius — это удобный инструмент для ремонта компьютера, который одновременно безопасен и легок. Это прекрасная альтернатива команде CHKDSK. Используйте этот инструмент в один клик, чтобы легко исправить поврежденную файловую систему.

    Step 1.  СКАЧАТЬ EaseUS CleanGenius на вашем компьютере и завершите установку.

    Step 2. Запустите программу. Щелкните «Optimization», а затем выберите «File Showing».

    select the file showing option

    Step 3. Выберите диск с поврежденной файловой системой. Установите флажок «Check and fix file system error» и нажмите «Execute».

    fix file system

    Step 4. Подождите, пока инструмент выполнит ремонтную задачу. После этого нажмите кнопку «here», чтобы проверить диск.

    fix file system

    Итог статьи

    Хотя мы рекомендуем вам восстанавливать данные с вашего проблемного устройства в случае потери данных после исправления, вы можете попробовать EaseUS Data Recovery Wizard, чтобы восстановить как можно больше файлов, если все возможные решения не устранили проблему «запрос не был выполнен из-за ошибки ввода/вывода на устройстве».

    Последние статьи — Также в программе EaseUS

    Источник: www.easeus.ru

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...
    EFT-Soft.ru