Nightmare1
@Nightmare1
Программист

Как получить список активных файлов в windows?

Интересует получения списка активных (занятых) файлов в системе Windows.h. Читал про недокументированную функцию , вот код

SYSTEM_HANDLE_INFORMATION* pInfo = NULL;
    DWORD dwSize = 0;
    NTSTATUS status = 0;

    do
    {
        // keep reallocing until buffer is big enough
        status = NtQuerySystemInformation(SystemHandleInformation, pInfo, dwSize, &dwSize);
        if (status == STATUS_INFO_LENGTH_MISMATCH)
            pInfo = (SYSTEM_HANDLE_INFORMATION*)realloc(pInfo, dwSize);
    } while (status != 0);

    for (DWORD i = 0; i < pInfo->dwCount; i++)
    {
        if (pInfo->handles[i].ProcessID == GetCurrentProcessId() && pInfo->handles[i].HandleType == 28)
        {
            TCHAR szPath[MAX_PATH];
            GetFinalPathNameByHandle((HANDLE)pInfo->handles[i].HandleNumber, szPath, MAX_PATH, 0);
            if (_tcsstr(szFilePath, L"filename_I_want_to_delete"))
            {
                CloseHandle((HANDLE)pInfo->handles[i].HandleNumber);
                DeleteFile(szPath);
            }
        }
    }


Но он не компилируется по причине неизвестных структур (типов).
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы