RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> Следующий код выдран из Nice/2 расширителя, модуль Files.c: > Зачем он там нужен - Х его З. Вероятно, для чего-то нужен... > > // --- Проверяет доступность диска --- > > #ifndef DRIVE_IS_AVAILABLE_IS_REPLACED > // Drive_name - имя диска. > BYTE DriveIsAvailable( PCHAR Drive_name ) > { > // Узнаем вид и название файловой системы. > ULONG Type = 0; CHAR FileSystem_name[ 25 ] = ""; > > CHAR Drive[ 3 ] = { Drive_name[ 0 ], Drive_name[ 1 ], 0 }; > PFSQBUFFER2 Data = NULL; ULONG Data_length = 1024; > > DosAllocSharedMem( (PPVOID) &Data, NULL, Data_length, PAG_ALLOCATE | OBJ_GIVEABLE ); > bzero( Data, Data_length ); > > DosQueryFSAttach( Drive, 0, FSAIL_QUERYNAME, Data, &Data_length ); > Type = Data->iType; strncpy( FileSystem_name, (PCHAR) &Data->szName + Data->cbName + 1, 24 ); > > DosFreeMem( Data ); Data = NULL; > > // Если имя узнать не удалось - диск недоступен. > if( FileSystem_name[ 0 ] == 0 ) return 0; > > // Сетевые диски нам не нужны. > if( Type != FSAT_LOCALDRV ) return 0; > > // Непригодные для поиска - тоже. > if( strfind( "CDFS", FileSystem_name ) ) return 0; > if( strfind( "FAT", FileSystem_name ) ) return 0; > if( strfind( "NTFS", FileSystem_name ) ) return 0; > if( strfind( "RAM", FileSystem_name ) ) return 0; > if( strfind( "NET", FileSystem_name ) ) return 0; > > { > CHAR Label[ SIZE_OF_NAME ] = ""; QueryDriveLabel( Drive_name, Label ); > if( DriveLabelHasSpecialChars( Label ) ) return 0; > } > > // Возврат. > return 1; > } > #endif >
_, _, _, _, _ _ _,_
(_ | / \ |\ | | |_/
, ) | , \ / | \| | | \
~ ~~~ ~ ~ ~ ~ ~ ~
Programmed by
Dmitri Maximovich
,
Dmitry I. Platonoff
,
Eugen Kuleshov
.
25.09.99 (c) 1999,
RU/2
. All rights reserved.
Rewritten by
Dmitry Ban
. All rights ignored.