| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Как отличить внешний носитель от внутреннего |
| Автор: Goganchic 26.8.2008, 13:35 |
| У меня такая задача: на уровне драйвера хочется по пути к файлу сказать, где этот файл находится, на внешнем или внутреннем носителе, т.е. к примеру дается путь C:\test.txt а драйвер как-то должен определить, что мол C:\ - это внутренний винчестер, или например F:\image.jpg - F:\ - это CDROM. Можно ли это как-то сделать? И если можно - то как? |
| Автор: v1rtu0z 26.8.2008, 13:52 | ||
| тебе нужно воспользоваться вот этой функцией: (далее из MSDN) The GetDriveType function determines whether a disk drive is a removable, fixed, CD-ROM, RAM disk, or network drive.
Parameters lpRootPathName [in] Pointer to a null-terminated string that specifies the root directory of the disk to return information about. A trailing backslash is required. If this parameter is NULL, the function uses the root of the current directory. Return Values The return value specifies the type of drive. It can be one of the following values. Value Meaning DRIVE_UNKNOWN The drive type cannot be determined. DRIVE_NO_ROOT_DIR The root path is invalid, for example, no volume is mounted at the path. DRIVE_REMOVABLE The drive is a type that has removable media, for example, a floppy drive or removable hard disk. DRIVE_FIXED The drive is a type that cannot be removed, for example, a fixed hard drive. DRIVE_REMOTE The drive is a remote (network) drive. DRIVE_CDROM The drive is a CD-ROM drive. DRIVE_RAMDISK The drive is a RAM disk. |
| Автор: ama_kid 26.8.2008, 14:45 |
| v1rtu0z, Goganchic, http://msdn.microsoft.com/en-us/library/ms800886.aspx с анализом http://msdn.microsoft.com/en-us/library/aa491674.aspx не поможет? |
| Автор: Goganchic 26.8.2008, 16:01 |
| ama_kid, спасибо огромное, проверять буду позже, так что пока не помечаю вопрос как решенный |