/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Find ud af om drev eksisterer udfra Volume~
Fra : --=([ Cerberus the H~


Dato : 06-05-02 01:33


Jeg roder med et program til at rydde op i mine databaser over billeder,
men er rendt ind i et lille problem:
Hvordan finder man ud af om et drev eksisterer udfra dets navn?

Den lange udgave er at mine databaser indeholder hele min billed-samling,
og da jeg regelmæssigt udrydder dupletter er der altså nogle
fil-referencer der ikke længere er gyldige. Referencerne er angivet med
både sti, og drev-navn. At teste på stien er ligetil, men drevnavnet
volder mig problemer. Hvordan finder man lettest ud af om et drev
eksisterer udfra dets sti-navn???

Jeg arbejder med FSO i VB6 Pro...


Rene


--
Visit my website, Cerberus' Hot Spot:
http://www.geocities.com/cerberus_hotdog
Babes, hardware, and internet references...

 
 
Harald Staff (06-05-2002)
Kommentar
Fra : Harald Staff


Dato : 06-05-02 08:20

Hei Rene

Function DriveExists(drv As String) As Boolean
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject")
DriveExists = fs.DriveExists(drv)
End Function


Sub TestIt()
Dim i As Integer
For i = 65 To 78
MsgBox Chr(i) & " exists: " & _
DriveExists(Chr(i)) 'TRUE
Next
End Sub

HTH. Beste hilsen Harald

"--=([ Cerberus the Hot Dog ])=--" <cerberus@mail-telia.dk> skrev i melding
news:kqibdug89588v8pmke7umm9u62gp34ec7o@4ax.com...
>
> Jeg roder med et program til at rydde op i mine databaser over billeder,
> men er rendt ind i et lille problem:
> Hvordan finder man ud af om et drev eksisterer udfra dets navn?
>
> Den lange udgave er at mine databaser indeholder hele min billed-samling,
> og da jeg regelmæssigt udrydder dupletter er der altså nogle
> fil-referencer der ikke længere er gyldige. Referencerne er angivet med
> både sti, og drev-navn. At teste på stien er ligetil, men drevnavnet
> volder mig problemer. Hvordan finder man lettest ud af om et drev
> eksisterer udfra dets sti-navn???
>
> Jeg arbejder med FSO i VB6 Pro...
>
>
> Rene
>
>
> --
> Visit my website, Cerberus' Hot Spot:
> http://www.geocities.com/cerberus_hotdog
> Babes, hardware, and internet references...



- [ Cerberus the Hot~ (06-05-2002)
Kommentar
Fra : - [ Cerberus the Hot~


Dato : 06-05-02 21:01

Hej Harald
(tilsyneladende forhindrer mine filtre i Agent mig i at se min egen
tråd...)

Ikke fordi jeg er utaknemmelig, men hvis jeg forstår ret hvad du
foreslår, så checker den alle drev-bogstaverne fra ende til anden, og
tester om de eksisterer. Det kan jeg godt finde ud af, men det er ikke
lige det jeg skal bruge. Det jeg har brug for er en måde at finde ud
af om drevets navn (f.eks. hedder mit C-drev "IBM40 P1", og mit D-drev
hedder "IBM13 P1") eksisterer.

Som det kører nu, kan jeg godt finde ud af hvad navnet på et givent
drev er, men at teste på det er tilsyneladende ikke helt VB's kop te.
Lige nu hiver jeg drev-navnet ud af basen som en streng, og
sammenligner den med drev-navnet på den sti som databasen siger skal
være på det drev (giver det mening?).

Kan godt være jeg selv har fundet løsningen, men bare ikke kan se den
.... endnu ihvertfald. Faktisk skal jeg bare have programmet til at
stoppe op og spørge hvad det skal gøre hvis databasens drevnavn ikke
matcher det virkelige...ellers kan jeg nemlig ikke se hvordan jeg kan
få det til at håndtere CD'ere...

Rene

"Harald Staff" <harald.staff@nrk.no> wrote in message news:<ab5ar8$man$1@oslo-nntp.eunet.no>...
> Hei Rene
>
> Function DriveExists(drv As String) As Boolean
> Dim fs As Object
> Set fs = CreateObject("Scripting.FileSystemObject")
> DriveExists = fs.DriveExists(drv)
> End Function
>
>
> Sub TestIt()
> Dim i As Integer
> For i = 65 To 78
> MsgBox Chr(i) & " exists: " & _
> DriveExists(Chr(i)) 'TRUE
> Next
> End Sub
>
> HTH. Beste hilsen Harald
>

Harald Staff (07-05-2002)
Kommentar
Fra : Harald Staff


Dato : 07-05-02 09:13

"- [ Cerberus the Hot Dog ] -" <cerberus@mail-telia.dk> skrev i melding
news:9d430f55.0205061200.76f7f942@posting.google.com...
(-)
> Ikke fordi jeg er utaknemmelig, men hvis jeg forstår ret hvad du
> foreslår, så checker den alle drev-bogstaverne fra ende til anden, og
> tester om de eksisterer.

Nå ja -Sub Testit gør det -men det var Function DriveExists som var poenget.


Det kan jeg godt finde ud af, men det er ikke
> lige det jeg skal bruge. Det jeg har brug for er en måde at finde ud
> af om drevets navn (f.eks. hedder mit C-drev "IBM40 P1", og mit D-drev
> hedder "IBM13 P1") eksisterer.
>
> Som det kører nu, kan jeg godt finde ud af hvad navnet på et givent
> drev er, men at teste på det er tilsyneladende ikke helt VB's kop te.
> Lige nu hiver jeg drev-navnet ud af basen som en streng, og
> sammenligner den med drev-navnet på den sti som databasen siger skal
> være på det drev (giver det mening?).

OK, prøv å kombinere "driveexists" med en tilpasset versjon av denne:

Option Explicit

Public Declare Function GetVolumeInformation Lib "kernel32.dll" Alias _
"GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal
lpVolumeNameBuffer _
As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long,
_
lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal _
lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As
Long

' Display the volume label, serial number, and file system name
' of the C: drive. Note how the serial number value is manipulated to
' display it properly.
Dim volname As String ' receives volume name of C:
Dim sn As Long ' receives serial number of C:
Dim snstr As String ' display form of serial number
Dim maxcomplen As Long ' receives maximum component length
Dim sysflags As Long ' receives file system flags
Dim sysname As String ' receives the file system name
Dim retval As Long ' return value

Sub test()
' Initialize string buffers.
On Error Resume Next
volname = Space(256)
sysname = Space(256)
' Get information about the C: drive's volume.
retval = GetVolumeInformation("C:\", volname, Len(volname), sn, maxcomplen,
_
sysflags, sysname, Len(sysname))
' Remove the trailing nulls from the two strings.
volname = Left(volname, InStr(volname, vbNullChar) - 1)
sysname = Left(sysname, InStr(sysname, vbNullChar) - 1)
' Format the serial number properly.
snstr = Trim(Hex(sn))
snstr = String(8 - Len(snstr), "0") & snstr
snstr = Left(snstr, 4) & "-" & Right(snstr, 4)
' Display the volume name, serial number, and file system name.

MsgBox "Volume Name: " & volname
MsgBox "Serial Number: " & snstr
MsgBox "File System: " & sysname
End Sub

HTH. Beste hiolsen Harald



--=([ Cerberus the H~ (11-05-2002)
Kommentar
Fra : --=([ Cerberus the H~


Dato : 11-05-02 19:22

Tak for hjælpen Harald. Har lige travlt med at få mit eksamensprojekt
færdigt, så har ikke lige tid til at kigge på det her lige nu, men vil
vende tilbage hurtigst muligt...

Nu har jeg da fået min Agent til at lade være med at slette tråden ...
så er det lige nemmere at følge med...

Rene

On Tue, 7 May 2002 10:13:14 +0200, "Harald Staff" spent some time writing
this:

>OK, prøv å kombinere "driveexists" med en tilpasset versjon av denne:
>
>Option Explicit
>
>Public Declare Function GetVolumeInformation Lib "kernel32.dll" Alias _
> "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal
>lpVolumeNameBuffer _
> As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long,
>_
> lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal _
> lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As
>Long
>
>' Display the volume label, serial number, and file system name
>' of the C: drive. Note how the serial number value is manipulated to
>' display it properly.
>Dim volname As String ' receives volume name of C:
>Dim sn As Long ' receives serial number of C:
>Dim snstr As String ' display form of serial number
>Dim maxcomplen As Long ' receives maximum component length
>Dim sysflags As Long ' receives file system flags
>Dim sysname As String ' receives the file system name
>Dim retval As Long ' return value
>
>Sub test()
>' Initialize string buffers.
>On Error Resume Next
>volname = Space(256)
>sysname = Space(256)
>' Get information about the C: drive's volume.
>retval = GetVolumeInformation("C:\", volname, Len(volname), sn, maxcomplen,
>_
> sysflags, sysname, Len(sysname))
>' Remove the trailing nulls from the two strings.
>volname = Left(volname, InStr(volname, vbNullChar) - 1)
>sysname = Left(sysname, InStr(sysname, vbNullChar) - 1)
>' Format the serial number properly.
>snstr = Trim(Hex(sn))
>snstr = String(8 - Len(snstr), "0") & snstr
>snstr = Left(snstr, 4) & "-" & Right(snstr, 4)
>' Display the volume name, serial number, and file system name.
>
>MsgBox "Volume Name: " & volname
>MsgBox "Serial Number: " & snstr
>MsgBox "File System: " & sysname
>End Sub

--
Visit my website, Cerberus' Hot Spot:
http://www.geocities.com/cerberus_hotdog
Babes, hardware, and internet references...

Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408885
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste