Как получить полный путь редактируемого файла из плагина в редакторе?

Валентин Скирдин [vskirdin@mail.ru]vskirdin@mail.ru

Замечание Замечание

В FIDO этот вопрос задавали, здесь повторяют...

Решил я поэкспериментировать с этим вопросом, и вот что у меня получилось. Очень кратко, самую суть...

После получения информации о редактируемом файле в EditorInfo->Filename находится имя редактируемого файла. Если имя файла без пути, то файл явно в текущем каталоге. Воспользуемся экспортируемой функцией ProcessEditorEvent (событие EE_READ)  и тем фактом, что в полный путь входит имя диска.

char Buffer[250]={0};
char *FilePart;

int WINAPI _export ProcessEditorEvent( int Event, void *Param)
{
  if(Event == EE_READ)
  {
    struct EditorInfo ei;
    Info.EditorControl(ECTL_GETINFO,&ei);
    if(!strrchr(ei.FileName,':'))
    {
      DWORD retlen;
      retlen= GetFullPathName (ei.FileName,240,Buffer,&FilePart);
    }
    else
      lstrcpy(Buffer,ei.FileName);
  }
  return 0;
}

Событие EE_READ происходит один раз, после того, как редактор загрузил файл на редактирование. На этом и построен весь механизм определения полного пути к файлу. После отработки этого фрагмента у Вас всегда в переменной Buffer будет имя редактируемого файла с полным путем.


 
19.08.1999
наверх