OVH Cloud OVH Cloud

test sur la taille d'un fichier

1 réponse
Avatar
twintopiste
bonjour,

Je rédige actuellement une macro qui, dans un premier temps, dezippe des
fichiers gz, les classe puis les importe sous Excel pour exploiter les
données contenues dans ces derniers.
Mon souci se pose au niveau des fichier zippés.
Dans un premier temps, j'utilise cette fonction qui me recherche l'ensemble
des fichiers zippés :

With Application.FileSearch
.NewSearch
.LookIn = "c:"
.SearchSubFolders = True
.Filename = "*.gz"
End With
With Application.FileSearch
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
'Enregistrement des fichiers trouvés dans un tableau
tabarchive(i) = .FoundFiles(i)
Next
End If
End With

Puis, un peu plus loin, dans mon code, je dezippe les fichiers trouvés :

For i = 0 To indice - 1
Shell ("C:\Program Files\WinZip\winzip32.exe -e " & tabarchive(i) &
" c:\Temp"
Next

Or, mon souci est que il arrive que mes fichiers zippés soient vides. Et,
lorsque je lance la commande de dézippage sur un fichier vide, Winzip reste
ouvert avec le mesage d'erreur adequat (inacceptable pour 300 fichiers :( ).
L'idée est donc de pouvoir tester la taille des fichiers gz trouvés. Si la
taille est très proche de 0 ko, pas de dezippage.

Mais comment faire ce test ?

Merci par avance
Marc

1 réponse

Avatar
twintopiste
Ne cherchez, plus, j'ai trouvé. La fonction FileLen renvoie la taille en
octet du fichier entré en argument...


bonjour,

Je rédige actuellement une macro qui, dans un premier temps, dezippe des
fichiers gz, les classe puis les importe sous Excel pour exploiter les
données contenues dans ces derniers.
Mon souci se pose au niveau des fichier zippés.
Dans un premier temps, j'utilise cette fonction qui me recherche l'ensemble
des fichiers zippés :

With Application.FileSearch
.NewSearch
.LookIn = "c:"
.SearchSubFolders = True
.Filename = "*.gz"
End With
With Application.FileSearch
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
'Enregistrement des fichiers trouvés dans un tableau
tabarchive(i) = .FoundFiles(i)
Next
End If
End With

Puis, un peu plus loin, dans mon code, je dezippe les fichiers trouvés :

For i = 0 To indice - 1
Shell ("C:Program FilesWinZipwinzip32.exe -e " & tabarchive(i) &
" c:Temp"
Next

Or, mon souci est que il arrive que mes fichiers zippés soient vides. Et,
lorsque je lance la commande de dézippage sur un fichier vide, Winzip reste
ouvert avec le mesage d'erreur adequat (inacceptable pour 300 fichiers :( ).
L'idée est donc de pouvoir tester la taille des fichiers gz trouvés. Si la
taille est très proche de 0 ko, pas de dezippage.

Mais comment faire ce test ?

Merci par avance
Marc