发信人: foxzz() 
整理人: hunter__fox(2002-03-16 21:48:54), 站内信件
 | 
 
 
*!*********************************************
 function getvolu 
 para p_lpRootPathName
 && 得到盘区信息
 && p_lpRootPathName:驱动器名
 && 示例:do getvolu with "c:\"
 
 #Define FILE_CASE_SENSITIVE_SEARCH     1
 #Define FILE_CASE_PRESERVED_NAMES      2
 #Define FILE_UNICODE_ON_DISK           4
 #Define FILE_PERSISTENT_ACLS           8
 #Define FILE_FILE_COMPRESSION         16
 #Define FILE_VOLUME_IS_COMPRESSED  32768  
 && &H8000
 
 Declare INTEGER GetLastError IN kernel32
 Declare SHORT GetVolumeInformation IN kernel32;
 	STRING    lpRootPathName,;
 	STRING  @ lpVolumeNameBuffer,;
 	INTEGER   nVolumeNameSize,;
 	INTEGER @ lpVolumeSerialNumber,;
 	INTEGER @ lpMaximumComponentLength,;
 	INTEGER @ lpFlags,;
 	STRING  @ lpFileSystemNameBuffer,;
 	INTEGER   nFileSystemNameSize
 if empty(p_lpRootPathName)
    p_lpRootPathName           = "C:\"      && 驱动器和目录名
 endif
 if right(p_lpRootPathName,2)<>":\"
    p_lpRootPathName = left(p_lpRootPathName,1)+":\"
 endif   
 
 lpRootPathName=p_lpRootPathName   
 lpVolumeNameBuffer       = SPACE(256) && lpVolumeName 返回缓存
 nVolumeNameSize          = 256        && lpVolumeNameBuffer 的大小
 lpVolumeSerialNumber     = 0          && lpVolumeSerialNumber 缓存
 lpMaximumComponentLength = 256
 lpFileSystemFlags        = 0
 lpFileSystemNameBuffer   = SPACE(256)
 nFileSystemNameSize      = 256
 
 lnResult = GetVolumeInformation(@lpRootPathName, @lpVolumeNameBuffer, ;
 	nVolumeNameSize, @lpVolumeSerialNumber, ;
 	@lpMaximumComponentLength, @lpFileSystemFlags, ;
 	@lpFileSystemNameBuffer, nFileSystemNameSize)
 
 local m_message
 m_message=""
 If lnResult = 1
 	m_message=m_message+"驱动器和目录名:" + ALLTRIM(lpRootPathName) +chr(13)+chr(10)
 	m_message=m_message+"卷名: " + LEFT(ALLTRIM(lpVolumeNameBuffer),LEN(ALLTRIM(lpVolumeNameBuffer))-1)+chr(13)+chr(10)
 	m_message=m_message+"卷名最大字符数: " + ALLTRIM(STR(nVolumeNameSize))+chr(13)+chr(10)
 	m_message=m_message+"卷序列号: " + ALLTRIM(STR(lpVolumeSerialNumber))+chr(13)+chr(10)
 	m_message=m_message+"文件/目录名的最大字符数 :" + ALLTRIM(STR(lpMaximumComponentLength))+chr(13)+chr(10)
 	m_message=m_message+"文件系统标记: " + ALLTRIM(STR(lpFileSystemFlags))+chr(13)+chr(10)
 	m_message=m_message+"文件系统类型: " + LEFT(ALLTRIM(lpFileSystemNameBuffer), LEN(ALLTRIM(lpFileSystemNameBuffer))-1)+chr(13)+chr(10)
 	m_message=m_message+"文件系统名大小: " + ALLTRIM(STR(nFileSystemNameSize))+chr(13)+chr(10)
 Else
 	m_message=m_message+"运行错误号: "+ GetLastError()
 Endif
 =messagebox(m_message,0+64+0,"盘区信息")
 Clea dlls
 Return m_message
 
 
  ---- 天行健,君子以自强不息
   | 
 
 
 |