找到当前所有逻辑驱动器的根驱动器路径

1) 利用GetDriveType函数:
Declare integer GetDriveType in " kernel32" String
Dgs=0
For I = 65 To 90
  vName=Chr(I) + ":"
  Lx= GetDriveType(vName)
   Do Case
     Case Lx=2
     Dgs=Dgs+1
      wait wind '这是个软盘'
     Case Lx=3
     Dgs=Dgs+1
      wait wind '这是个硬盘'
     Case Lx=4
     Dgs=Dgs+1
      wait wind '这是个可移去式驱动器或网络驱动器'
     Case Lx=5
     Dgs=Dgs+1
      wait wind '这是个光盘'
     Case Lx=6
     Dgs=Dgs+1
      wait wind '这是个RAM盘'
   Endc
Endf
Wait wind '本机共有:'+str(Dgs)+'个驱动器'

=================================

(2) 利用GetLogicalDriveStrings函数:
Declare integer GetLogicalDriveStrings in "kernel32" Long, string @cc
CC=Spac(81)
=GetLogicalDriveStrings(81,@cc)
*CC中返回了这样的字符串"a:/ c:/ d:/ e:/ f:/ "每个名字都用一个NULL字符
  分隔,在最后一个名字后面用两个NULL表示中止。
X=(len(allt(cc))-1)/4  &&x中包含本机逻辑驱动器个数
*如果你想知道每个具体的驱动器名,则写如下代码:
Dime Dve(X)
For I=1 to X
  Dve(I)=Subs(CC,1,3)
  CC=Subs(CC,5)
Endf
*这样在Dve这个数组里就是每个驱动器的盘符及":/" 了。

*如果你还想知道每个驱动器的类型,则再添加和改写如下代码:
Declare integer GetDriveType in "kernel32" String
Dime Dve(X,2)
For I=1 to X
  Dve(I,1)=Subs(CC,1,3)
  Lx=GetDriveType(Dve(I,1))
  Do Case
    Case Lx=2
      Dve(I,2)='软盘'
    Case Lx=3
      Dve(I,2)='硬盘'
    Case Lx=4
      Dve(I,2)='可移去式驱动器或网络驱动器'
    Case Lx=5
      Dve(I,2)='光盘'
    Case Lx=6
      Dve(I,2)='RAM盘'
  Endc
  CC=Subs(CC,5)
Endf

你可能感兴趣的:(c,网络,String,null,Integer)