@KPIshnik

Создание расширения Windows Explorer. Какими средствами можно узнать параметры файла?

Я создаю расширение для Explorer. По клику правой кнопкой мишки на файле/выделенных файлах и выборе моего пункта в меню нужно записать имя файла, размер и дату создания файла в файл. Какими средствами можно узнать эти параметры файла (имя должно быть без полного пути)?
  • Вопрос задан
  • 2671 просмотр
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Реализуйте метод Initialize интерфейса IShellExtInit, в нём получите путь до файлов:
HRESULT STDMETHODCALLTYPE XXX::Initialize(
        LPCITEMIDLIST pidlFolder,
        LPDATAOBJECT lpdobj,
        HKEY hkeyProgID)
{
        STGMEDIUM medium;
        FORMATETC fe = {CF_HDROP, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL};

        if(SUCCEEDED(lpdobj->GetData(&fe,&medium))) {
                UINT n = DragQueryFile((HDROP)medium.hGlobal,~0,NULL,0);
                for (UINT i = 0; i < n; ++i) {
                        char filePath[MAX_PATH];
                        DragQueryFile((HDROP)medium.hGlobal,i,filePath,MAX_PATH);
                        printf("%s\n", filePath);
                }
                ReleaseStgMedium(&medium);
        }
        return S_OK;
}

Откройте файл и вызовите GetFileInformationByHandle, оно вернёт вам и размер и дату создания. От пути последний компонент сами отрежете?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы