Visual Basic 1002005 [A Developers Notebook] [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Visual Basic 1002005 [A Developers Notebook] [Electronic resources] - نسخه متنی

شرکت رسانه او ریلی

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید







5.1. Get Drive Information


.NET includes handy
DirectoryInfo and FileInfo
classes for gathering information about files and directories.
However, in .NET 1.x there wasn't any way to get a
list of all the drives on your computer without using unmanaged calls
to the Windows API. Thankfully, the DriveInfo
class finally debuts in .NET 2.0.


Note: The DriveInfo class lets you easily retrieve information
about the drives on your computer.




Tip: Before going any further, start by importing the
System.IO namespace. The file access classes in
.NET 2.0 (FileInfo, DirInfo,
and DriveInfo) all exist there. Whether you access
them directly or through the My object,
you'll need to import this namespace.




5.1.1. How do I do that?


The
My.Computer.FileSystem provides a quick way to get
a list of all the drives on the current computer. All you need to do
is loop through the Drives collection, which
exposes a collection of System.IO.DriveInfo
objects.

For example, to see all the drive letters on the current computer,
enter the following code:

' Display a list of drives.
For Each Drive As DriveInfo In My.Computer.FileSystem.Drives
Console.WriteLine(Drive.Name)
Next

This writes a list of drive letter names
("A:\",
"C:\",
"D:\", and so on). You can also
create a DriveInfo object for a specific directory
by using the My.Computer.FileSystem.GetDriveInfo(
)
method, and specifying the letter of
the drive you want to examine as a string. For example, try the
following code to take a closer look at drive C:

Console.WriteLine("The label for drive C:\ is " & _
My.Computer.FileSystem.GetDriveInfo("C").VolumeLabel

This example displays the volume label that's set
for the drive. You can also examine other properties of the
DriveInfo object to get more information (such as
the DriveType, TotalFreeSpace,
and TotalSize). But keep in mind that you
can't retrieve this information for a removable
drive if there's no media present (for example, if
the CD or diskette isn't in the drive). To guard
against this possibility, check to make sure the
DriveType doesn't include
DriveType.Fixed before trying to get more detail.

Example 5-1 puts these concepts together with a
complete, simple console application that displays information about
all the drives on your computer.


Example 5-1. Displaying information about all the drives on a computer

Imports System.IO
Module DriveInfoTest
Public Sub Main( )
Console.WriteLine("Drives on this computer: ")
For Each Drive As DriveInfo In My.Computer.FileSystem.Drives
' Display drive information.
Console.WriteLine(Drive.Name)
Console.WriteLine(vbTab & "Type: " & Drive.DriveType.ToString( ))
If (Drive.DriveType And DriveType.Fixed) = DriveType.Fixed Then
Console.WriteLine(vbTab & "Format: " & _
Drive.DriveFormat.ToString( ))
Console.WriteLine(vbTab & "Label: " & Drive.VolumeLabel)
Console.WriteLine(vbTab & "Total Size: " & Drive.TotalSize)
Console.WriteLine(vbTab & "Free Space: " & Drive.TotalFreeSpace)
End If
Console.WriteLine( )
Next
End Sub
End Module

When you run this code, you'll see the following
output:

Drives on this computer:
A:Type: Removable
C:Type: Fixed
Format: NTFS
Label: Applications
Total Size: 15726702592
Free Space: 2788483072
D:...


5.1.2. What about...


...getting information about the rest of the filesystem? The .NET
Framework has always made it easy to get directory and file
information using DirectoryInfo and
FileInfo objects. Once you have instantiated a
DriveInfo object, you can use its
RootDirectory property
to get a DirectoryInfo object that wraps the root
directory (e.g., C:\). You can then use methods
like DirectoryInfo.GetFiles( ) and
DirectoryInfo.GetDirectories( ) to retrieve the
files and subdirectories contained in the root directory.


5.1.3. Where can I learn more?


For more information about all the properties of the filesystem
information classes, look for the
"DriveInfo,"
"DirectoryInfo," and
"FileInfo" index entries in the
MSDN class library reference. You can also refer to other labs in
this chapter, which show new shortcuts available with the
My.Computer.FileSystem object. These include:

"Get File and Directory
Information," which shows how you can quickly get
information about a specific file or directory without directly
creating a FileInfo or
DirectoryInfo object.

"Copy, Move, and Delete Files,"
which shows how you can easily shuffle files and directories from one
place to another.

"Read and Write Files," which shows
the quickest way to extract text content from a file or write to a
file.



/ 97