[VB6-VBSCRIPT] FileSystemObject .. probleme avec les tailles dispos

FileSystemObject .. probleme avec les tailles dispos [VB6-VBSCRIPT] - Programmation

Marsh Posté le 11-05-2001 à 15:28:15    

petit problème... je dois copier des fichiers se trouvant sur CD-rom et les recopier sur disque dur... pour cela je crée un ptite fct permettant de voir s'il y a assez de place.. tout marche tres bien tant que je copie un répertoire particulier (e:\mon rep ...) la ou ca ne va plus c'est qd je dois recopier tout le CD (e:\)  je crois qu'il n'arrives pas à prendre la racine du CD comme étant un réperoire
 
Public Function EnoughFreeSpace(ByVal Source As String, ByVal Destination As String) As Boolean
Dim FSO As New FileSystemObject
Dim SourceDir As Folder
Dim sourceSize  As Long
Dim destSize  As Long
Dim DestDir As Folder
Dim DestDrv As Drive
Set SourceDir = FSO.GetFolder(Source)
Set DestDir = FSO.GetFolder(Destination)
Set DestDrv = DestDir.Drive
SourceSize = FormatNumber(SourceDir.Size, 0)--> problème
 
DestSize = FormatNumber(DestDrv.FreeSpace, 0)  
If sourceSize < destSize Then
    EnoughFreeSpace = True
Else
    EnoughFreeSpace = False
End If
End Function
 
Je sais pas si quelqu'un a déjà utilisé ces fcts??
 
faut -il que je convertisse la racine comme étant un lecteur??

 

[edit]--Message édité par _GrEgY_--[/edit]

Reply

Marsh Posté le 11-05-2001 à 15:28:15   

Reply

Marsh Posté le 11-05-2001 à 15:46:27    

Il s'avère que lorsque la source est un disque la propriété size de l'objet folder n'est pas définie. Par contre la propriété IsRootFolder a pour valeur TRUE et dans ce cas la il faut interroger les propriétés TotalSize et FreeSpace de l'objet Drive et faire une soustraction.
 
Le code deviendrait donc :  
 

Code :
  1. Public Function EnoughFreeSpace(ByVal Source As String, ByVal Destination As String) As Boolean
  2.    Dim FSO As New FileSystemObject
  3.    Dim SourceDir As Folder
  4.    Dim sourceSize  As Long
  5.    Dim destSize  As Long
  6.    Dim DestDir As Folder
  7.    Dim DestDrv As Drive
  8.    Set SourceDir = FSO.GetFolder(Source)
  9.    Set DestDir = FSO.GetFolder(Destination)
  10.    Set DestDrv = DestDir.Drive
  11.    If SourceDir.IsRootFolder Then
  12.       SourceSize = FormatNumber(SourceDir.Drive.TotalSize - SourceDir.Drive.FreeSpace, 0)
  13.    Else
  14.       SourceSize = FormatNumber(SourceDir.Size, 0)
  15.    End If
  16.    DestSize = FormatNumber(DestDrv.FreeSpace, 0) 
  17.    If sourceSize < destSize Then
  18.       EnoughFreeSpace = True
  19.    Else
  20.       EnoughFreeSpace = False
  21.    End If
  22. End Function

Reply

Marsh Posté le 11-05-2001 à 20:16:57    

ok je vais essayer ce code
 
un grand merci!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed