Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


FileSystemObject

Postades av 2003-01-22 19:47:57 - Stefan Nilsson, i forum visual basic - allmänt, Tråden har 20 Kommentarer och lästs av 483 personer

Tjena!

Jag har ett litet problem med FileSystemObject.

Hur returnerar jag storleken på min hårddisk. Den är 80 GB. Att returnera en disketts storlek är inga problem då den har så mycket mindre kapacitiet.

Jag får som svar att storleken i bytes är: 2147155968.
Vilket är väl runt 2 GB om jag inte misstar mig.
Jag använder mig av metoden ".TotalSize", kan inte den returnera ett värde större än datatypen Long, eller?

Tacksam för hjälp.

Mvh Stefan Nilsson


Svara

Sv: FileSystemObject

Postades av 2003-01-22 22:18:56 - Håkan Borneland

Jag provade den här kodsnutten, och det fungerade på min dator.
Jag har också en 80 GB hårddisk.

<code>
Private Sub Form_Load()
Call ShowSpaceInfo("c:")
End Sub

Sub ShowSpaceInfo(drvpath)
Dim fs, d, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set d = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName(drvpath)))
s = "Drive " & d.DriveLetter & ":"
s = s & vbCrLf
s = s & "Total Size: " & FormatNumber(d.TotalSize / 1024, 0) & " Kbytes"
s = s & vbCrLf
s = s & "Available: " & FormatNumber(d.AvailableSpace / 1024, 0) & " Kbytes"
MsgBox s
End Sub
</code>

/Håkan


Svara

Sv: FileSystemObject

Postades av 2003-01-22 22:47:31 - Stefan Nilsson

Jag provade ditt förslag, men får fortfarande bara samma svar.

Så här ser det ut för både min C: och D: enhet...

Drive C:
Total Size: 2 096 832 KBytes
Available: 2 096 832 KBytes

Drive D:
Total Size: 2 096 832 KBytes
Available: 2 096 832 KBytes

Jag kör med VB 6, använder Windows ME. Det ska väl inte ha någon betydelse, eller?

Reference: Microsoft Scripting Runtime (SCRRUN.DLL)

/Mvh Stefan Nilsson


Svara

Sv: FileSystemObject

Postades av 2003-01-22 22:53:22 - Andreas Hillqvist

Det är ingen long som retuneras. Gissar att det är en variant som retuneras. Kanske är en Currency eller Decimal.

Hoss mig fungerar det att använda Currency för min 30GByte stora disk:
<code>
Function HDDSize(DriveName As String) As Currency
Dim FSO As FileSystemObject
Dim Drive As Drive
Set FSO = New FileSystemObject
Set Drive = FSO.GetDrive(DriveName)
HDDSize = Drive.TotalSize
End Function
</code>


Svara

Sv: FileSystemObject

Postades av 2003-01-22 23:02:55 - Håkan Borneland

Hur ser din partitionering ut av hårddisken?
Du har ju bevisligen något som är 2 GB stort!
Frågan är vad det är.
Hur stor är c: och d:??
Hur mycket av vardera används?
Gå in och titta via utforskaren för att se vad det är som är 2GB,
så blir det lättare att förstå vad du "hämtar i koden".

/Håkan


Svara

Sv: FileSystemObject

Postades av 2003-01-22 23:04:33 - Stefan Nilsson

Jag har provat din kodsnutt också. Tyvärr utan annat resultat.

Antal bytes: 2147155968

Både på AvailableSpace och TotalSize.

Har det någon betydelse om man har partitionerat hårddisken?

Det här är ju sjukt... jag använder Professional Edition, i och för sig har jag ju inte installerat något service pack. Kan det kanske vara så att det är felet?

/Mvh Stefan Nilsson


Svara

Sv: FileSystemObject

Postades av 2003-01-22 23:07:32 - Håkan Borneland

Hur ser din kod ut?

/Håkan


Svara

Sv: FileSystemObject

Postades av 2003-01-22 23:12:47 - Stefan Nilsson

Partitionering:

C:
Använt utrymme: 2 170 372 096 Bytes (2,02 GB)
Ledigt utrymme: 6 769 942 528 Bytes (6,30 GB)
Kapacitet: 8 940 314 624 Bytes (8,32 GB)

D:
Använt utrymme: 60 744 204 288 Bytes (56,5 GB)
Ledigt utrymme: 12 631 998 464 Bytes (11,7 GB)
Kapacitet: 73 376 202 752 Bytes (68,3 GB)

Det lustiga är att VolumeName stämmer ju in på D: enheten, fast jag får samma värden. Alltså måste det väl vara på D: enheten som jag utför kommandot på. Där finns ingenting som är i närheten av 2 GB.

/Mvh Stefan Nilsson


Svara

Sv: FileSystemObject

Postades av 2003-01-22 23:14:20 - Stefan Nilsson

Jag tog din kodsnutt:

Sub ShowSpaceInfo(drvpath)

Dim fs, d, s

Set fs = CreateObject("Scripting.FileSystemObject")
Set d = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName(drvpath)))
s = "Drive " & d.DriveLetter & ":" & d.VolumeName
s = s & vbCrLf
s = s & "Total Size: " & FormatNumber(d.TotalSize / 1024, 0) & " Kbytes"
s = s & vbCrLf
s = s & "Available: " & FormatNumber(d.AvailableSpace / 1024, 0) & " Kbytes"
MsgBox s

End Sub

Private Sub Form_Load()

Call ShowSpaceInfo("c:")

End Sub

/Mvh Stefan Nilsson


Svara

Sv: FileSystemObject

Postades av 2003-01-22 23:18:26 - Andreas Hillqvist

Prova med API istället:
<code>

Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" (ByVal lpRootPathName As String, lpFreeBytesAvailableToCaller As Currency, lpTotalNumberOfBytes As Currency, lpTotalNumberOfFreeBytes As Currency) As Long

Private Sub Form_Load()
Dim r As Long, BytesFreeToCalller As Currency, TotalBytes As Currency
Dim TotalFreeBytes As Currency, TotalBytesUsed As Currency
Const RootPathName = "C:\" 'the drive to find

'get the drive's disk parameters
Call GetDiskFreeSpaceEx(RootPathName, BytesFreeToCalller, TotalBytes, TotalFreeBytes)
'show the results, multiplying the returned
'value by 10000 to adjust for the 4 decimal
'places that the currency data type returns.
Me.AutoRedraw = True
Me.Cls
Me.Print
Me.Print " Total Number Of Bytes:", FormatNumber(TotalBytes * 10000, 0) & " bytes"
Me.Print " Total Free Bytes:", FormatNumber(TotalFreeBytes * 10000, 0) & " bytes"
Me.Print " Free Bytes Available:", FormatNumber(BytesFreeToCalller * 10000, 0) & " bytes"
Me.Print " Total Space Used :", FormatNumber((TotalBytes - TotalFreeBytes) * 10000, 0) & " bytes"
End Sub

</code>


Svara

Sv: FileSystemObject

Postades av 2003-01-22 23:23:04 - Stefan Nilsson

Underbart, det fungerade med API'n.

Fast det är väldigt svårt att släppa varför det inte skulle fungera med FileSystemObject... Mycket frustrerande.

Tack Andreas för koden!

/Mvh Stefan Nilsson


Svara

Sv: FileSystemObject

Postades av 2003-01-22 23:31:54 - Håkan Borneland

Bra att du fick en fungerande lösning.
Håller med dig om att det är lite svårsmält varför det inte skulle fungera med FileSystemObjekt (hos dig), då det fungerar här hos mig.
Tydligen så var det det använda utrymmet på c: som visades.
Konstigt att det andra inte kom fram.

/Håkan


Svara

Sv: FileSystemObject

Postades av 2003-01-22 23:39:04 - Stefan Nilsson

Jag håller helt med om att det är lustigt.

Jag letade reda på dll-filen SCRRUN.DLL på nätet för att se om jag hade en för gammal version, hittade den på en site som hade ett DLL-archive. Det visade sig dock att min version var nyare än deras. Så det kan väl knappast vara felet. Svårt att säga.

Min nuvarande version: 5.1.0.5010
Den jag hittade: 5.1.0.4615

Hämtar hem Service Pack 5, ska testa ifall det har någon inverkan.

Som sagt: svårt att släppa varför.

Tackar alla som hjälpt till. Skulle någon komma på vad som skulle kunna vara felet, så är jag mer än tacksam om jag får reda på det.

En sak är säker, jag kommer inte att ge mig. Gillar inte när sådana här dumma fel uppstår. Oftast brukar det ju bara vara en bagatell som man har missat någonstans. Men jag undrar i detta fall...

/Mvh Stefan Nilsson


Svara

Sv: FileSystemObject

Postades av 2003-01-22 23:50:11 - Håkan Borneland

Håller med dig, det är svårt att släppa sådana här saker.
Jag har VB6 Enertprise edition SP 5.
Kollade upp versionen på min scrrun.dll,
den är nyare än din 5.6.0.6626.
Detta kan ju spela roll, samt även service packet.
Pröva igen när du fått hem SP 5, och hör av dig hur det gick.

/Håkan


Svara

Sv: FileSystemObject

Postades av 2003-01-23 00:05:04 - Stefan Nilsson

Har installerat Service Pack 5 nu, och hittade en nyare SCRRUN.DLL:

Version 5.6.0.6012

Inte riktigt lika ny som din. Men det fungerar inte ändå. Ska försöka att hitta samma version som du har.

/Mvh Stefan Nilsson


Svara

Sv: FileSystemObject

Postades av 2003-01-23 00:10:16 - Stefan Nilsson

Hmm... behöver man inte referera till Microsoft Scripting Runtime?!?

Jag kan nämligen köra koden utan att har en referens till den...

Mycket märkligt...

Någon mer som kan köra koden utan referens?

/Mvh Stefan Nilsson


Svara

Sv: FileSystemObject

Postades av 2003-01-23 00:33:14 - Håkan Borneland

Jag har inte heller "lagt" till Microsoft Scripting Runtime i projektet.
Du får "allt" när du gör anropet CreateObject("Scripting.FileSystemObject").

/Håkan


Svara

Sv: FileSystemObject

Postades av 2003-01-23 00:39:33 - Stefan Nilsson

Nu är det löst!

Nu fungerar det! Tjohoo!!

Jag kunde inte uppdatera dll-filen genom att kopiera över den i systemkatalogen, för windows skapade genast en ny (med den gamla versionen: 5.1.0.5010). Det spelade ingen roll om jag tog bort den, den kom en ny fil bara efter någon sekund.

Men jag läst lite på nätet om filen och kom fram till att den följer med följande produkter:

FILE INFORMATION:

Name: scrrun.dll
Description: Microsoft (r) Script Runtime
Version: 5.6.0.6626
DLLSelfRegister: Yes
TypeLib Guid: {420B2830-E718-11CF-893D-00A0C9054228}
TypeLib Version: 1.0

PRODUCTS CONTAINING THIS VERSION:
PRODUCT SIZE MOD DATE CAB/IEXPRESS RELATIVE PATH
Internet Explorer 6.0 147,512 6/26/2001 scr56en.cab
Internet Explorer 6.0 147,512 6/26/2001 scripten.cab
Microsoft Visual Studio .NET (2002) Enterprise Architect 147,512 6/26/2001 scr56en.cab \wcu\ie60
Microsoft Visual Studio .NET (2002) Enterprise Architect 147,512 6/26/2001 scripten.cab \wcu\ie60
Microsoft Visual Studio .NET (2002) Enterprise Developer 147,512 6/26/2001 scripten.cab \wcu\ie60
Microsoft Visual Studio .NET (2002) Enterprise Developer 147,512 6/26/2001 scr56en.cab \wcu\ie60
Microsoft Visual Studio .NET (2002) Professional 147,512 6/26/2001 scr56en.cab \wcu\ie60
Microsoft Visual Studio .NET (2002) Professional 147,512 6/26/2001 scripten.cab \wcu\ie60
Windows XP Home 2002 147,483 8/17/2001 \i386
Windows XP Professional 2002 147,483 8/17/2001 \i386

Så jag hämtade hem Internet Explorer 6.0 från Microsoft's hemsida, installerade det. Kontrollerade version på dll-filen, som nu är 5.6.0.6626

Hoppade in i VB och testade programmet. Det fungerade mycket fint.

Slutsats blir: att den gamla dll-filen innehåller bug eller något annat tokigt med den.

Det lustiga är att jag läste om FileSystemObject i en bok för VB 6, så det är lustigt att inte version som följer med VB 6 fungerar som den ska.

Skönt att få klarhet i problemet.

Tackar och bockar för all hjälp!

/Mvh Stefan Nilsson


Svara

Sv: FileSystemObject

Postades av 2003-01-23 00:47:14 - Håkan Borneland

Gôtt att det löste sig, nu har du/vi ökat kunskapsbanken lite grann.
Jag har nyligen lagt in IE 6.0 därav (som du kom på) versionsnummret.
Bara att köra vidare, happy coding!! ;-))

/Håkan


Svara

Sv: FileSystemObject

Postades av 2003-01-23 00:52:28 - Stefan Nilsson

Det är aldrig fel när man kommer på en lösning. Det är det som är roligt med programmering: att lösa problem.

Får väl hoppas att detta hjälper andra också ifall samma problem uppstår för dem.

Nu är det nog dags att försöka få sig lite skönhetssömn. Slapp man ligga vaken hela natten och grubbla på detta i alla fall.

Mvh Stefan Nilsson


Svara

Sv: FileSystemObject

Postades av 2003-01-23 01:02:02 - Håkan Borneland

Precis!
Programmering = 2 timmars svordomar och 2 minuters lycka (när allt faller på plats)!!
: -))

/Håkan


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 170
27 953
271 705
630
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies