HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Meghajtó információk lekérdezése


Windows Scripting Host 8. rész

Példaprogram letöltése

3865 bájt

Gyakran szükséges tudni, hogy egy meghajtón van-e elegendő tárterület, a csatlakoztatott hálózati meghajtóhoz milyen megosztás tartozik, vagy csak annyit, hogy az egység készen áll-e az adatok fogadására (pl: floppy). Mindezen információkhoz a Windows Scripting Host segítségével hozzájuthatunk. Cikkünkben több példa szkripten keresztül végezzük el a lekérdezéseket.
Cikkünkhöz mellékelve megtalálhatók a példákban szereplő szkriptek:

"DriveExists.vbs" - Leellenőrzi, hogy az A: meghajtó létezik-e a rendszerben.
"Drives.vbs" - Kilistázza a rendszerben lévő meghajtókat, ellenőrzi, hogy készen állnak-e az adatok fogadására, ha igen kiírja a kötetcímkéjüket (CD ROM-nál és floppy-nál a benne lévő lemezét).
"DriveType.vbs" - Leellenőrzi egy megadott meghajtó állapotát az előbbiekhez hasonlóan és kiírja, hogy milyen típusú (CD ROM, RAM Disk, Fixed, stb.)
"FileSystem.vbs" - Kiírja az adott meghajtón található fájlrendszer típusát.
"GetDrive.vbs" - Kiírja az adott meghajtó adatait: kötetcímke, maximális kapacitás, szabad kapacitás.
"ShareName.vbs" - Kiírja az adott hálózati meghajtóhoz tartozó hálózati elérési útvonalat.

Cikksorozatunk utóbbi részeiben a FileSystemObject-en keresztül hajtottuk végre ténykedéseinket és még mindig nincs vége. A meghajtó információkhoz való hozzájutáshoz is "Ő" fogja szolgáltatni a megoldást.

Kezdjük az elején: ellenőrizzük, hogy az adott meghajtó létezik-e:
Dim fso, msg
  drv="A:"
   Set fso = CreateObject("Scripting.FileSystemObject")
   If fso.DriveExists(drv) Then
      msg = ("Van ilyen nevű meghajtó: "+UCase(drv))
   Else
      msg = ("Nincs ilyen nevű meghajtó: "+UCase(drv))
   End If
  MsgBox(msg)

Szkriptünk ellenőrzi az A: floppy meghajtó meglétét.
A példa kulcsfüggvénye a "DriveExists (meghajtó)". Ahol a "meghajtó" értéke a hozzá tartozó fizikai egység betűjele, különböző formában: A, A:, A:\. Ami érdekesség, hogy a függvényt hálózati elérési utak tesztelésére is lehet használni. Ekkor a "meghajtó" értéke az UNC szintaxis szerinti útvonal (\\kiszolgáló\megosztás).

Ha már itt tartunk az is megoldható, hogy egy csatlakoztatott hálózati meghajtóhoz tartozó UNC útvonalat kiírassunk:
Dim fso, d
drvpath="H:"
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set d = fso.GetDrive(fso.GetDriveName(drvpath))
   MsgBox("A(z) " + d.DriveLetter + " meghajtó megosztása: " + d.ShareName)

Ehhez a "GetDrive" objektum "ShareName" nevű tulajdonságát kérdeztük le a H:\ hálózati meghajtó esetében.

Most már tudjuk, hogy létezik-e az általunk keresett eszköz, de vajon milyen fájlrendszer van rajta? FAT, FAT32, NTFS, CDFS?
Dim fso,d
drvspec="C:"
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set d = fso.GetDrive(drvspec)
   MsgBox(d.FileSystem)

Ismét a "GetDrive" objektum szolgáltatja az információt, csak most a "FileSystem" tulajdonságát kell megkérdeznünk.

Bővítsünk egy kicsit: tudjuk meg, hogy mi a kötetcímkéje mennyi üres hely van rajta, mennyi az összes tárterület és ebből mennyit használhatunk fel:
Dim fso, d, s
drvPath="C:"
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set d = fso.GetDrive(fso.GetDriveName(drvPath))
   s = "A(z) " + UCase(drvPath) + " meghajtó "
   s = s + "kötetcímkéje: ["+d.VolumeName
   s = s + "] és " + FormatNumber(d.FreeSpace, 0)
   s = s + " bájt üres hely van rajta a(z) " + FormatNumber(d.TotalSize, 0) + "-ból."
   s = s + " Felhasználható bájtok száma: " + FormatNumber(d.AvailableSpace, 0)
MsgBox(s)

A "GetDrive" objektum "VolumeName" tulajdonsága adja vissza a kötetcímkét sztring formátumban.
Üres helyünk a "FreeSpace"-ben tárolódik. Az összes kapacitás pedig a "TotalSize"-ban. Mindebből "AvailableSpace" értéknyit lehet felhasználni. Joggal merülhet fel a kérdés, hogy mi a különbség az üres és a felhasználható terület között. Nos alaphelyzetben semmi, de ha NTFS fájlrendszeren kvóta-rendszer működik, akkor már lehet. Ugyanis korlátozható a maximálisan felhasználható merevlemez terület.

Nem mindegy, hogy a használandó eszköz milyen típusú és készen áll-e az adatok fogadására. Ha a típus CDROM nem biztos, hogy érdemes erőltetni a szkriptből való írást. Ugyanakkor floppyról is csak akkor lehet adatot olvasni, ha minimum van benne lemez. Bonyolultabb szkripteknél megnehezül az ilyen és ehhez hasonló ellenőrző műveletek hiányából fakadó hibakeresés:
Dim fso, d, t, r
drvpath="A"
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set d = fso.GetDrive(drvpath)
   Select Case d.DriveType
      Case 0: t = "Ismeretlen"
      Case 1: t = "Removable"
      Case 2: t = "Fixed"
      Case 3: t = "Network"
      Case 4: t = "CD-ROM"
      Case 5: t = "RAM Disk"
   End Select
If d.IsReady Then
      r = "készen áll"
   Else
      r = "nem áll készen"
   End If
   MsgBox("A meghajtó típusa: " + d.DriveLetter + ": - " + t + " és " + r)

Még mindig a "GetDrive" objektum segít nekünk, annak is a "DriveType" paramétere. Összesen 6 típust különböztet meg (pontosabban ötöt, mert az egyik a fel nem ismerteket jelöli). Minden eszközhöz tartozik egy "IsReady" logikai tulajdonság, aminek az értéke: TRUE - ha készen áll az eszköz és FALSE - ha nem.

Végül van még egy objektum "Drive" néven annak tárolására, hogy milyen meghajtók vannak a rendszerbe telepítve (beleértve a hálózatit is). Ez tulajdonképpen a Sajátgép (My Computer) ikonon való kettős kattintás után megjelenő lista. Cikluson keresztül lekérdezhető és a fentiek felhasználásával ellenőrizzük az eszköz rendelkezésre állását és ennek megléte esetén írassuk ki a kötetcímkékét (CD-nél a benne lévő média címkéjét).
   Dim fso, d, dc, s, n
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set dc = fso.Drives
   For Each d in dc
      n = ""
      s = s + d.DriveLetter + " - "
      If d.IsReady Then
        n = "Készen áll > " + d.VolumeName
      Else
        n = "Nem áll készen"
      End If
      s = s + n + Chr(13)
   Next
MsgBox (s)







Könyv
Ez a cikk megtalálható ebben a könyvben: Windows Software Offline 2001 évkönyv 274. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |