| 
| 
 | Вопрос # 910/ вопрос решён / | 
 |  Приветствую, уважаемые эксперты!Как определить тип файловой системы на логическом диске?
 
|  |   Вопрос задал: Ilia Ermakov (статус: 1-ый класс)Вопрос отправлен: 11 сентября 2007, 13:12
 Состояние вопроса: решён, ответов: 2.
 |  Ответ #1. Отвечает эксперт: Вадим К Здравствуйте, Ilia Ermakov!Обычно под Windows нужно уметь различать два типа файловых систем - FAT и NTFS. Есть много способов определять, но есть один "дедовский", который с большой уверенностью поможет их различать. Это попытаться создать в корне диска файл с таким странным именем как $BITMAP (знак доллара в начале нужен). Под FAT он создастся без проблем. А вот под NTFS - нет, так как такой есть (то что вы его не видете, ещё ничего не значит).
 
|  | Ответ отправил: Вадим К (статус: Академик)Время отправки: 11 сентября 2007, 14:30
 Оценка за ответ: 5
 Комментарий к оценке: Прикольный способ, но если случайно в корне диска с FAT будет этот файл, то правильного результата не будет. Правда я не пробовал удалять его перед проверкой, может помогает... Так как предложили друой способ GetVolumeInformation. )) |  Ответ #2. Отвечает эксперт: Feniks Здравствуйте, Ilia Ermakov!Я могу ошибаться, но попробуйте вот этот код и почитайте в Хелпе функцию GetVolumeInformation...
 Приложение:Переключить в обычный режим procedure TForm1.Button1Click(Sender: TObject);varVolumeName,FileSystemName : array [0..MAX_PATH-1] of Char;VolumeSerialNo : DWord;MaxComponentLength,FileSystemFlags : Integer;beginGetVolumeInformation('C:\',VolumeName,MAX_PATH,@VolumeSerialNo,MaxComponentLength,FileSystemFlags,FileSystemName,MAX_PATH);Memo1.Lines.Add('VName = '+VolumeName);Memo1.Lines.Add('SerialNo = $'+IntToHex(VolumeSerialNo,8));Memo1.Lines.Add('CompLen = '+IntToStr(MaxComponentLength));Memo1.Lines.Add('Flags = $'+IntToHex(FileSystemFlags,4));Memo1.Lines.Add('FSName = '+FileSystemName);end; 
|  | Ответ отправил: Feniks (статус: Бакалавр)Время отправки: 11 сентября 2007, 15:56
 Оценка за ответ: 5
 Комментарий к оценке: Да работает нормально. Спасибо |  
 Мини-форум вопросаВсего сообщений: 0. 31 января 2011, 19:29: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5) Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |