15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как определить тип файловой системы

В следующем примере переменная Drive содержит букву диска, а переменная lRes будет содержать тип файловой системы, плюс дополнительную информацию об устройстве:

Private Declare Function GetVolumeInformation _
	Lib "kernel32" Alias "GetVolumeInformationA" _
	(ByVal lpRootPathName As String, ByVal _
	lpVolumeNameBuffer As String, ByVal _
	nVolumeNameSize As Long, _
	lpVolumeSerialNumber As Long, _
	lpMaximumComponentLength As Long, _
	lpFileSystemFlags As Long, ByVal _
	lpFileSystemNameBuffer As String, ByVal _
	nFileSystemNameSize As Long) As Long
Public Function WhichFileSystem(ByVal Drive _
	As String) As String
	Dim sVolBuf As String * 255
	Dim sSysName As String * 255
	Dim lSerialNum As Long
	Dim lSysFlags As Long
	Dim lComponentLength As Long
	Dim lRes As Long
	lRes = GetVolumeInformation(Drive, sVolBuf, _
		255, lSerialNum, lComponentLength, _
		lSysFlags, sSysName, 255)
	If lRes Then
		WhichFileSystem = Left$(sSysName, _
			InStr(sSysName, Chr$(0)) - 1)
	Else
		WhichFileSystem = "<unknown>"
	End If
End Function