Поведение, которое вы видите, не имеет никакого отношения к расширению или содержанию файла. Это связано с тем, как связанные приложения обрабатывают эти файлы. Например, «Блокнот», Internet Explorer и т. Д. Не будут хранить блокировку открытого файла после чтения содержимого. Вот почему файлы .txt и .html могут быть открыты.
Microsoft Office, практически все медиаплееры и т. Д. Будут хранить блокировку файла. В случае с Office это делает так, чтобы другие программы не удаляли/не перемещали файл из-под него. В случае с медиа-проигрывателем файлы обычно слишком велики, чтобы полностью считывать их в память. Вот почему эти типы файлов блокируются при использовании.
Другими словами, файлы, которые, как представляется, не используются, на самом деле не используются. Программа считывает данные из файла и закрывает его, и теперь это делается с ним. Невозможно определить, есть ли у другой программы открытый файл, если у него больше нет открытого дескриптора файла.
возможно дубликат [C#: есть ли способ, чтобы проверить если файл используется?] (http://stackoverflow.com/questions/876473/c-is-there-a-way-to-check-if-a-file-is-in-use) –