CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 3 of 3
  1. #1
    Join Date
    Apr 2000
    Location
    Chicago
    Posts
    18

    Determine if drive is floppy or Zip

    Program backs up its data to floppies, but some users want to use Zip disks. Does anyone know of an API call to find which is being used? I know how to find available disk space, but is there some way to find the total capacity of a drive?


  2. #2
    Join Date
    Feb 2000
    Posts
    149

    Re: Determine if drive is floppy or Zip

    I did something similar for finding Cdroms-look into this...

    Declare statements...


    private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (byval nBufferLength as Long, byval lpBuffer as string) as Long
    private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (byval nDrive as string) as Long



    Part of subroutine....


    'initialize strDrives to 255 spaces
    strDrives = Space(255)

    'get drives, strDrives var will look like
    ' A:\<null>C:\<null>D:\<null>E:\<null><null>
    'intNumberOfDrives is the new length of Drives

    intNumberOfDrives = GetLogicalDriveStrings(len(strDrives), strDrives)
    Y = 1
    for X = 1 to intNumberOfDrives step 4
    'get a drive root directory (like "C:\")
    strDriveName = mid(strDrives, X, 3)
    'if drive is a CD
    If GetDriveType(strDriveName) = DRIVE_CDROM then
    intNumberOfCDDrives = intNumberOfCDDrives + 1
    strCDLetters = strCDLetters & Left(strDriveName, 1) & " "
    strCDDriveArray(Y) = strDriveName
    Y = Y + 1
    End If
    next X








  3. #3
    Join Date
    May 2000
    Location
    New York, NY, USA
    Posts
    2,878

    Re: Determine if drive is floppy or Zip

    Private Sub GetInfo()
    Dim fs, d, s, t
    Dim drvpath As String

    On Error Resume Next

    drvpath = Text1.Text
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set d = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName(drvpath & ":\")))
    Select Case d.DriveType
    Case 0: t = "Unknow"
    Case 1: t = "Removable"
    Case 2: t = "Hard Disk"
    Case 3: t = "Network"
    Case 4: t = "CD-ROM"
    Case 5: t = "RAM Disc"
    End Select
    If Err Then
    lblDrive = "Unit " & Text1.Text & ": not found"
    lblSN = ""
    lblFree = ""
    lblTot = ""
    Exit Sub
    Else
    lblDrive = "Unit " & d.DriveLetter & ": - " & t
    lblSN = "NS: " & d.SerialNumber
    If Err Then
    lblSN = "Unit not ready"
    lblFree = ""
    lblTot = ""
    End If
    If (d.AvailableSpace / 1024) >= 1024 Then
    lblFree = "Free Space: " & FormatNumber(d.AvailableSpace / 1048576, 2) & " MB"
    Else
    lblFree = "Free Space: " & FormatNumber(d.AvailableSpace / 1024, 0) & " KB"
    End If
    If (d.TotalSize / 1024) >= 1024 Then
    lblTot = "Total Size: " & FormatNumber(d.TotalSize / 1048576, 2) & " MB"
    Else
    lblTot = "Total Size: " & FormatNumber(d.TotalSize / 1024, 0) & " KB"
    End If
    End If
    End Sub

    Private Sub Command2_Click()
    End
    End Sub

    Private Sub Form_KeyPress(KeyAscii As Integer)
    If ((KeyAscii >= 65) And (KeyAscii <= 90)) Or ((KeyAscii >= 97) And (KeyAscii <= 122)) Then
    Text1.Text = Chr(KeyAscii)
    Text1.Text = UCase(Text1.Text)
    GetInfo
    End If
    End Sub

    Private Sub Form_Load()
    GetInfo
    KeyPreview = True
    End Sub



    Iouri Boutchkine
    [email protected]
    Iouri Boutchkine
    [email protected]

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured