Посмотрите, заблокирован ли файл на C#

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

Следующий FileIsLocked метод возвращает true, если файл заблокирован для определенного типа доступа. Например, передайте этой процедуре значение доступа FileAccess.Write, если вы хотите узнать, заблокирован ли файл, чтобы вы не вписались в него.

// Возвращает true, если файл заблокирован для указанного доступа.
private bool FileIsLocked(string filename, FileAccess file_access)
{
    // Попробуйте открыть файл с указанным доступом.
    try
    {
        FileStream fs =
            new FileStream(filename, FileMode.Open, file_access);
        fs.Close();
        return false;
    }
    catch (IOException)
    {
        return true;
    }
    catch (Exception)
    {
        throw;
    }
}

Код просто пытается открыть файл для данного метода доступа и видит, вызывает ли это ошибку. Он использует блок try-catch для обработки любой ошибки, которая может возникнуть. Если ошибка является IOException, тогда метод предполагает, что файл заблокирован.

Обратите внимание, однако, что могут быть другие причины, по которым метод не мог получить доступ к файлу. Например, если путь файла находится на несуществующем диске, код получит IOException.

Источник: http://csharphelper.com/blog/2017/01/see-if-a-file-is-locked-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *