Как определить, был ли файл заблокирован другим процессом в powershell?
Я прочитал несколько примеров проверок, которые ловят исключение, которое возникает при попытке прочитать файл. Это как-то не нравится мне.
Как определить, был ли файл заблокирован другим процессом в powershell?
Я прочитал несколько примеров проверок, которые ловят исключение, которое возникает при попытке прочитать файл. Это как-то не нравится мне.
В общем, вы не можете быть уверены, что у вас есть доступ к нужному файлу, даже не пытаясь его использовать. Даже если вы могли бы сделать правильную проверку, между временем, когда вы делаете проверку, и временем, когда вы используете файл, состояние может измениться.
Например, пользователь предоставляет вам имя файла для чтения. Вы проверяете, существует ли файл, видите, что он существует, и решаете продолжить. Прежде чем пытаться прочитать его, другая программа удаляет его. Или, возможно, файл находится в общей сетевой папке, и сеть отключается.
Итак, попробуйте использовать файл, перехватить исключение и завершиться неудачно.
Кроме того, не забывайте ловить и отклонять только те исключения, которые вы понимаете и ожидаете.