Ответы с форумов MSDN

Получение списка открытых файлов в Windows

Date: 03.11.2017 4:14:45

Системные утилиты предположительно используют NetFileEnum для получения удаленно открытых файлов и  NtQuerySystemInformation для получения локально открытых файлов.

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

Message 621

Date: 03.11.2017 4:40:15

Локально файлов открывается очень много даже без вашего ведома. У меня команда openfiles /query > file.txt выдает файл на 900+ строк (большинство - шрифты и всякие временные файлы).

Но если нужны только удаленные то это легко должно делаться через NetFileEnum. Вот тут пример есть: https://www.codeproject.com/Articles/6426/WebControls/

Message 620

Date: 03.11.2017 5:22:11

Вот тут посмотрите для c# http://www.pinvoke.net/default.aspx/netapi32.NetFileEnum

openfiles это стандартная системная утилита, в system32 лежит. 

Можно кстати ее вывод парсить, если вам так проще будет.


Автор: VadimTagil

Главная страница - Список тем - Репозиторий на GitHub