* VB-CODE (1)
Tip 139: Retrieving a Disk's Volume Label

July 1, 1995

Abstract
Each time you format a disk in MS-DOS®, you are given the opportunity to assign a
unique name (called a volume label) to that disk. This article explains how to
retrieve a disk's volume label in a Microsoft® Visual Basic® application.

Using Dir$ Function to Retrieve Only Specific File Names
The Dir$ function in Microsoft® Visual Basic® can retrieve the name of any file
stored on disk. To search for a specific file on disk, you pass the file's name
to the Dir$ function as:

FileName = Dir$("C:\AUTOEXEC.BAT")

If the AUTOEXEC.BAT file is not found on drive C, the Dir$ function will return
an empty string; otherwise, the file's name is returned. You can, of course, also
search for files by specifying a wildcard file name, such as AUT*.*, to find the
name of each file that begins with the AUT prefix characters stored on disk.
When you create a new file under the MS-DOS® or Microsoft Windows® operating
systems, that file is assigned a file attribute. A file may have one or more of
the following attributes assigned to it:

Normal         0  Data can be read from or written to the file.
Read Only      1  Data can be read from the file but not written to the file.
Hidden         2  The file cannot be seen in the directory list.
System         4  The file is a system file and is used only by the operating
                  system.
Volume Label   8  The special name given to the disk. Only one volume label can
                  be assigned to each disk.
Directory     16  The file is a subdirectory.
Archive       32  The file has been modified since backup was last performed.

You can use any of these numeric file attribute values in conjunction with the
Dir$ function to retrieve specific types of files.
In the example program below, you want to display the volume label name for drive
C. To do this, you run the statement:

TempBuffer = Dir$("C:*.*", ATTR_VOLUME)

This tells Dir$ that you want to retrieve the file that has its volume label
attribute set. Because only one file on each disk can have a volume label at
any given time, you need to run this statement only once to retrieve the disk's
name.

Example Program
This program shows how to retrieve a disk's volume label.

 1. Create a new project in Visual Basic. Form1 is created by default.
 2. Add the following Constant to the General Declarations section of Form1:

Const ATTR_VOLUME = &H8

 3. Add a Text Box control to Form1. Text1 is created by default.
 4. Add a Command Button control to Form1. Command1 is created by default.
 5. Add the following code to the Click event for Command1:

Private Sub Command1_Click()
    Dim TempBuffer As String
    TempBuffer = Dir$("C:*.*",ATTR_VOLUME)
    Text1.Text = TempBuffer
End Sub

Run the example program by pressing F5. Click the command button. The program
will display the volume label for drive C in the Text Box control, if such a
file does indeed exist.

Additional References
Tip 44: Modifying File Attributes


Return