[Résolu] limiter taille d'un fichier VB6

cavrom

XLDnaute Nouveau
Bonjour à tous :),
j'ai créé dans une interface un bouton permettant de parcourir mes fichier afin d'en sélectionner un. Le chemin et le nom du fichier s'affichent dans deux textbox respectives. J'aimerais qu'une troisième textbox affiche la taille du fichier.
Ensuite, j'aimerais que suivant la valeur de la taille du fichier, il soit accepté ou non ( taille max 500 Ko), lors du clique d'un bouton "send", que j'ai déjà créé.
Pourriez vous m'éclairer?
Pour l'instant mon code est :

Code:
Private Sub CommandButton1_Click()

Dim NAO As String

NAO = Application.GetOpenFilename

For i = Len(NAO) To 1 Step -1
If Mid(NAO, i, 1) = "\" Then lendossier = i: GoTo suite
Next
suite:
TextBox1.Value = Mid(NAO, 1, lendossier - 1)
TextBox2.Value = Mid(NAO, lendossier + 1, (Len(NAO) + 1) - lendossier)

End Sub

Merci de votre aide,
Cavrom
 
Dernière édition:

Softmama

XLDnaute Accro
Re : limiter taille d'un fichier VB6

Bonjour,

A moins que la taille du fichier soit écrite dans son chemin d'accès, je crains que tu ne doives changer de technique... Un peu plus compliquée, qui nécessite de cocher la référence 'Microsoft Scripting Runtime', ce bout de macro devrait t'aider :

VB:
Private Sub CommandButton1_Click()

Dim NAO As String

NAO = Application.GetOpenFilename

For i = Len(NAO) To 1 Step -1
If Mid(NAO, i, 1) = "\" Then lendossier = i: GoTo suite
Next
suite:
TextBox1.Value = Mid(NAO, 1, lendossier - 1)
TextBox2.Value = Mid(NAO, lendossier + 1, (Len(NAO) + 1) - lendossier)

 Dim Fso As Scripting.FileSystemObject
Dim SourceFolder As Scripting.Folder
Dim FileItem As Scripting.File

    Set SourceFolder = Fso.GetFolder(Textbox1)
For each FileItem in SOurceFolder.files
  If FileItem = TextBox2 then TextBox3.Value = FileItem.Size
Next FileItem

End Sub

Je te laisse tester, par contre...
 

Softmama

XLDnaute Accro
Re : limiter taille d'un fichier VB6

Je ne vois pas d'où provient ton souci. Peux-tu mettre un bout de fichier afin que l'on puisse regarder de plus près ?
NB: En y regardant de plus près, je me rends compte que j'ai laissé une erreur je crois dans le code que je t'ai proposé, il faudrait remplacer
If FileItem = TextBox2 then TextBox3.Value = FileItem.Size
par
If FileItem.Name = TextBox2 then TextBox3.Value = FileItem.Size
Mais cela n'explique pas pourquoi la Fso n'est pas défini...
 

Dranreb

XLDnaute Barbatruc
Re : limiter taille d'un fichier VB6

Bonjour
Pourquoi pas plus simplement :
VB:
Textbox3.Value = FileLen(NAO)
FileLen, fonction


Renvoie une valeur de type Long indiquant la longueur en octets d'un fichier.

Syntaxe

FileLen(pathname)

L'argument pathname est une expression de chaîne définissant un fichier. L'argument pathname peut préciser le répertoire ou le dossier et le lecteur.

Remarques

Si le fichier indiqué est ouvert lors de l'appel de la fonction FileLen, la valeur renvoyée représente la taille du fichier juste avant son ouverture.

Note Pour connaître la longueur d'un fichier ouvert, utilisez la fonction LOF.
À+
 

cavrom

XLDnaute Nouveau
Re : limiter taille d'un fichier VB6

Merci pour toutes ces réponse !
le code :
Code:
Private Sub CommandButton1_Click()

Dim NAO As String
Dim i As Long

NAO = Application.GetOpenFilename
i = InStrRev(NAO, "\")

If i > 0 Then
    TextBox1.Value = Left$(NAO, i - 1)
    TextBox2.Value = Mid$(NAO, i + 1)
End If

TextBox3.Value = FileLen(NAO)
End Sub
marche très bien.
Je cherche maintenant à établir une boucle If, me permettant, si le fichier est inférieur à 500 ko, de continuer comme si de rien n'était, mais s'il dépasse, d'afficher une MsgBox "la taille du fichier dépasse 500ko". Je pensais à un code du style :


Code:
If TextBox3.Value>105200 Then     '500 ko = 105200 o
MsgBox("la taille du fichier dépasse 500ko", 0,"taille fichier")

If TextBox3.Value<105200 Then Go To End If
End If


Je pense que cela est faux, mais en quoi ?
Encore merci de votre aide,
Cavrom
 

Discussions similaires

Réponses
8
Affichages
620

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T