Поскольку DICOMDIR является специализированным экземпляром файла DICOM Part 10, вы можете прочитать только тег UID класса SOP Media Storage этого файла (который будет составлять всего несколько сотен байтов файла), а затем определить,файл является DICOMDIR.Код, подобный этому, будет работать:
DicomFile file = new DicomFile(fi);
file.Load(DicomTags.MediaStorageSopClassUid, DicomReadOptions.Default);
if (file.MediaStorageSopClassUid.Equals(SopClass.MediaStorageDirectoryStorageUid))
{
DicomDirectory fi_dicomdir = new DicomDirectory("AETITLE");
fi_dicomdir.Load(fi);
}
Это должно работать быстро и было бы надежным способом определить, является ли файл DICOMDIR.